advanced ms-dos programming - ray g. duncan

Upload: eurasians

Post on 05-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    1/521

    inpno{!Nxgkig'~s~Inpigkhn A[!NO[ Vuomuiaajgm

    Inpigkhn A[!NO[ Vuomuiaajgm^ch Ajkuo{o`~#U* Mxjnh `ou I{{haelz Ligmximh ign K Vuomuiaahu{

    Ez Uiz Nxgkig

    VXELJ[CHN EZAjkuo{o`~ Vuh{{I Njpj{jog o` Ajkuo{o`~ Kouvoui~jog90699 GH ;0~c ]iz, Eos :=69=, Uhnaogn, ]i{cjgm~og :36=;!:=9=Kovzujmc~ #K* 9:30, 9:33 ez Uiz Nxgkig

    Vxelj{chn 9:30' [hkogn hnj~jog 9:33'Ill ujmc~{ uh{huphn' Go viu~ o` ~ch kog~hg~{ o` ~cj{ eoob aiz ehuhvuonxkhn ou ~uig{aj~~hn jg igz `oua ou ez igz ahig{ }j~cox~ ~ch }uj~~hgvhuaj{{jog o` ~ch vxelj{chu'Ljeuiuz o` Kogmuh{{ Ki~ilomjgm jg Vxeljki~jog Ni~i

    Nxgkig, Uiz, 9:85!Inpigkhn A[!NO[ vuomuiaajgm'Uhp' hn' o`4 Inpigkhn A[!NO[' #K*9:30'Jgklxnh{ jgnhs'9' A[!NO[ #Koavx~hu ovhui~jgm {z{~ha* 5' I{{haelhu ligmximh#Koavx~hu vuomuia ligmximh* ;' K #Koavx~hu vuomuia ligmximh*J' Nxgkig, Uiz, 9:85! Inpigkhn A[!NO[' JJ' ^j~lh'YI=0'=0'60;N383 9:33 668'>->0 33!9589J[EG 9!88098!98=!3

    Vujg~hn ign eoxgn jg ~ch Xgj~hn [~i~h{ o` Iahujki'

    9 5 ; > 8 0 = 3 : @M@M ; 5 9 6 : 3

    Nj{~ujex~hn ~o ~ch eoob ~uinh jg ~ch Xgj~hn [~i~h{ ez Ciuvhu & Uo}'

    Nj{~ujex~hn ~o ~ch eoob ~uinh jg Kigini ez Mhghuil Vxelj{cjgm Koavigz,L~n'

    Vhgmxjg Eoob{ L~n', Ciuaogn}ou~c, Ajnnlh{hs, HgmlignVhgmxjg Eoob{ Ix{~uilji L~n', Ujgm}oon, Pjk~ouji, Ix{~uiljiVhgmxjg Eoob{ G'T' L~n', 935!9:6 ]ijux Uoin, Ixkblign 96, Gh} Thilign

    Euj~j{c Ki~ilomjgm jg Vxeljki~jog Ni~i ipijlielh

    JEA#U*, VK/I^#U*, ign V[/5#U* iuh uhmj{~huhn ~uinhaiub{ o` Jg~hugi~jogilEx{jgh{{ Aikcjgh{ Kouvoui~jog' KonhPjh}#U*, Ajkuo{o`~#U*, A[!NO[#U*, ignSHGJS#U* iuh uhmj{~huhn ~uinhaiub{ ign JgVou~ ^A j{ i ~uinhaiub o`Ajkuo{o`~ Kouvoui~jog'

    ^hkcgjkil Hnj~ou4 Ajbh Cilpou{og Vuonxk~jog Hnj~ou4 Aiuz Igg Dogh{

    Nhnjki~jog

    @ou Kiuolzg

    Vimh 9

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    2/521

    inpno{!Nxgkig'~s~Kog~hg~{

    Uoin Aiv ~o @jmxuh{ ign ^ielh{

    Ikbgo}lhnmahg~{

    Jg~uonxk~jog

    [HK^JOG 9 VUOMUIAAJGM @OU A[!NO[

    Kciv~hu 9 Mhghilomz o` A[!NO[

    Kciv~hu 5 A[!NO[ jg Ovhui~jog

    Kciv~hu ; [~uxk~xuh o` A[!NO[ Ivvljki~jog Vuomuia{

    Kciv~hu > A[!NO[ Vuomuiaajgm ^ool{

    Kciv~hu 8 Bhzeoiun ign Aox{h Jgvx~

    Kciv~hu 0 Pjnho Nj{vlizKciv~hu = Vujg~hu ign [hujil Vou~

    Kciv~hu 3 @jlh Aigimhahg~

    Kciv~hu : Polxah{ ign Njuhk~oujh{

    Kciv~hu 96 Nj{b Jg~hugil{

    Kciv~hu 99 Ahaouz Aigimhahg~

    Kciv~hu 95 ^ch HSHK @xgk~jog

    Kciv~hu 9; Jg~huuxv~ Cignlhu{

    Kciv~hu 9> Jg{~illielh Nhpjkh Nujphu{

    Kciv~hu 98 @jl~hu{

    Kciv~hu 90 Koavi~jejlj~z ign Vou~iejlj~z

    [HK^JOG 5 A[!NO[ @XGK^JOG[ UH@HUHGKH

    [HK^JOG ; JEA UOA EJO[ IGN AOX[H @XGK^JOG[ UH@HUHGKH

    [HK^JOG > LO^X[/JG^HL/AJKUO[O@^ HA[ @XGK^JOG[ UH@HUHGKH

    Jgnhs

    Uoin Aiv ~o @jmxuh{ ign ^ielh{

    A[!NO[ phu{jog{ ign uhlhi{h ni~h{

    A[!NO[ ahaouz aiv

    [~uxk~xuh o` vuomuia {hmahg~ vuh`js #V[V*

    [~uxk~xuh o` 'HSH loin aonxlh

    Uhmj{~hu kognj~jog{ i~ vuomuia hg~uz

    [hmahg~{, muoxv{, ign kli{{h{

    Vimh 5

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    3/521

    inpno{!Nxgkig'~s~

    Aikuo I{{haelhu {}j~kch{

    K Koavjlhu {}j~kch{

    Ljgbhu {}j~kch{

    AIBH {}j~kch{

    IG[J h{kivh {hyxhgkh{

    Pjnho i~~ujex~h{

    [~uxk~xuh o` gouail `jlh kog~uol elokb #@KE*

    [~uxk~xuh o` hs~hgnhn `jlh kog~uol elokb

    A[!NO[ huuou konh{

    [~uxk~xuh o` eoo~ {hk~ou

    [~uxk~xuh o` njuhk~ouz hg~uz[~uxk~xuh o` `jshn!nj{b ai{~hu elokb

    LJA HA[ huuou konh{

    Jg~hl 36s30 jg~hugil jg~huuxv~{ #`ixl~{*

    Jg~hl 36s30, A[!NO[, ign UOA EJO[ jg~huuxv~{

    Nhpjkh!nujphu i~~ujex~h }oun

    Nhpjkh!nujphu koaaign konh{

    [~uxk~xuh o` EJO[ viuiah~hu elokb #EVE*

    Ahnji nh{kujv~ou ez~h

    Ikbgo}lhnmahg~{

    Az uhgh}hn ~cigb{ ~o ~ch ox~{~ignjgm hnj~ou{ ign vuonxk~jog {~i`` i~Ajkuo{o`~ Vuh{{, }co aibh ehix~j`xl eoob{ civvhg, ign ~o ~ch ~ilhg~hnAjkuo{o`~ nhphlovhu{, }co kuhi~h muhi~ vuomuia{ ~o }uj~h eoob{ ieox~'[vhkjil ~cigb{ ~o Ajbh Cilpou{og, Dh`` Cjg{kc, Aiuz Igg Dogh{, Klixnh~~hAoouh, Nouj [ci~~xkb, ign Aiub Tejbo}{bj2 j` ~cj{ eoob ci{ igz~cjgm xgjyxh~o o``hu, ~ch{h vhovlh nh{huph ao{~ o` ~ch kuhnj~'

    Jg~uonxk~jog

    Inpigkhn A[!NO[ Vuomuiaajgm j{ }uj~~hg `ou ~ch hsvhujhgkhn K oui{{haelz!ligmximh vuomuiaahu' J~ vuopjnh{ ill ~ch jg`ouai~jog zox ghhn ~o}uj~h uoex{~, cjmc!vhu`ouaigkh ivvljki~jog{ xgnhu ~ch A[!NO[ ovhui~jgm{z{~ha' Ehkix{h J ehljhph ~ci~ }oubjgm, }hll!nokxahg~hn vuomuia{ iuhxgehi~ielh lhiugjgm ~ool{, J ciph jgklxnhn nh~ijlhn vuomuiaajgm hsiavlh{~cuoxmcox~jgklxnjgm koavlh~h x~jlj~z vuomuia{ ~ci~ zox kig iniv~ ~o zoxuo}g ghhn{'

    ^cj{ eoob j{ eo~c i ~x~oujil ign i uh`huhgkh ign j{ njpjnhn jg~o `oxu{hk~jog{, {o ~ci~ zox kig `jgn jg`ouai~jog aouh hi{jlz' [hk~jog 9

    nj{kx{{h{ A[!NO[ kiviejlj~jh{ ign {hupjkh{ ez `xgk~jogil muoxv jg ~chkog~hs~ o` koaaog vuomuiaajgm j{{xh{, {xkc i{ x{hu jgvx~, kog~uol o` ~ch

    Vimh ;

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    4/521

    inpno{!Nxgkig'~s~nj{vliz, ahaouz aigimhahg~, ign `jlh cignljgm' [vhkjil kli{{h{ o`vuomuia{, {xkc i{ jg~huuxv~ cignlhu{, nhpjkh nujphu{, ign `jl~hu{, ciph~chju o}g kciv~hu{'

    [hk~jog 5 vuopjnh{ i koavlh~h uh`huhgkh mxjnh ~o A[!NO[ `xgk~jog kill{,oumigjthn {o ~ci~ zox kig {hh ~ch killjgm {hyxhgkh, uh{xl~{, ign phu{jog

    nhvhgnhgkjh{ o` hikc `xgk~jog i~ i mligkh' J ciph il{o jgklxnhn go~h{,}chuh uhlhpig~, ieox~ yxjub{ ign {vhkjil x{h{ o` `xgk~jog{ i{ }hll i{kuo{{!uh`huhgkh{ ~o uhli~hn `xgk~jog{' Ig i{{haelz!ligmximh hsiavlh j{jgklxnhn `ou hikc hg~uz jg [hk~jog 5'

    [hk~jog{ ; ign > iuh uh`huhgkh{ ~o JEA UOA EJO[, Ajkuo{o`~ Aox{h nujphu,ign Lo~x{/Jg~hl/Ajkuo{o`~ Hsvignhn Ahaouz [vhkj`jki~jog `xgk~jog{' ^chhg~ujh{ jg ~ch{h ~}o {hk~jog{ ciph ~ch {iah `oua i{ jg [hk~jog 5, hskhv~~ci~ jgnjpjnxil vuomuiaajgm hsiavlh{ ciph ehhg oaj~~hn'

    ^ch vuomuia{ jg ~cj{ eoob }huh }uj~~hg }j~c ~ch aiuphlox{ Eujh` hnj~ou`uoa [olx~jog [z{~ha{ ign i{{haelhn ou koavjlhn }j~c Ajkuo{o`~ AikuoI{{haelhu phu{jog 8'9 ign Ajkuo{o`~ K Koavjlhu phu{jog 8'9' ^chz ciph ehhg~h{~hn xgnhu A[!NO[ phu{jog{ 5'9, ;'9, ;';, ign >'6 og ig 3633!ei{hn JEAVK, ig 36530!ei{hn JEA VK/I^, ign ig 36;30!ei{hn JEA V[/5 Aonhl 36' I{ `iu

    i{ J ia i}iuh, ~chz no go~ kog~ijg igz {o`~}iuh ou ciun}iuh nhvhgnhgkjh{~ci~ }jll vuhphg~ ~cha `uoa uxggjgm vuovhulz og igz JEA VKkoavi~jelhaikcjgh uxggjgm A[!NO[ phu{jog 5'6 ou li~hu'

    Kcigmh{ `uoa ~ch @ju{~ Hnj~jog

    Uhinhu{ }co iuh `iajljiu }j~c ~ch `ju{~ hnj~jog }jll `jgn aigz kcigmh{ jg~ch {hkogn hnj~jog, ex~ ~ch mhghuil {~uxk~xuh o` ~ch eoob uhaijg{ ~ch{iah' Ao{~ o` ~ch ai~hujil koaviujgm A[!NO[ ~o KV/A ign XGJS/SHGJS ci{ehhg uhaophn2 il~coxmc ~ch{h koaviuj{og{ }huh chlv`xl i `h} zhiu{ imo,A[!NO[ ci{ ehkoah j~{ o}g xgjphu{h ign nh{huph{ ~o eh kog{jnhuhn og j~{o}g ~hua{'

    ^ch vuhpjox{lz aogolj~cjk kciv~hu og kciuik~hu nhpjkh{ ci{ ehhg euobhgjg~o ~cuhh aouh aigimhielh kciv~hu{ `okx{jgm og ~ch bhzeoiun ign aox{h,

    ~ch nj{vliz, ign ~ch {hujil vou~ ign vujg~hu' Ciun}iuh!nhvhgnhg~ pjnho~hkcgjyxh{ ciph ehhg nh!havci{jthn2 il~coxmc ~cj{ ~ovjk j{ aouh javou~ig~~cig hphu, j~ ci{ muo}g {o koavlhs ~ci~ j~ uhyxjuh{ i eoob o` j~{ o}g' Igh} kciv~hu nj{kx{{h{ koavi~jejlj~z ign vou~iejlj~z o` A[!NO[ ivvljki~jog{ign il{o kog~ijg{ i eujh` jg~uonxk~jog ~o Ajkuo{o`~ O[/5, ~ch gh}axl~j~i{bjgm, vuo~hk~hn!aonh ovhui~jgm {z{~ha'

    I uoin aiv ~o pj~il `jmxuh{ ign ~ielh{ ci{ ehhg innhn, `ollo}jgm ~ch ^ielho` Kog~hg~{, ~o chlv zox yxjkblz loki~h ~ch lizox~{ o` ~ch vuomuia {hmahg~vuh`js, `jlh kog~uol elokb, ign ~ch ljbh'

    ^ch uh`huhgkh {hk~jog{ i~ ~ch eikb o` ~ch eoob ciph ehhg hs~hg{jphlzxvni~hn ign hgliumhn ign iuh go} koavlh~h ~cuoxmc A[!NO[ phu{jog >'6, ~chJEA V[/5 Aonhl 36 UOA EJO[ ign ~ch PMI pjnho iniv~hu, ~ch Ajkuo{o`~ Aox{hnujphu phu{jog 0'6, ign ~ch Lo~x{/Jg~hl/Ajkuo{o`~ Hsvignhn Ahaouz

    [vhkj`jki~jog phu{jog >'6'

    Jg ~ch ~}o zhiu{ {jgkh Inpigkhn A[!NO[ Vuomuiaajgm }i{ `ju{~ vxelj{chn,cxgnuhn{ o` uhinhu{ ciph ehhg bjgn hgoxmc ~o {hgn ah ~chju koaahg~{, ign Jciph ~ujhn ~o jgkouvoui~h aigz o` ~chju {xmmh{~jog{ jg ~cj{ gh} hnj~jog'I{ eh`ouh, vlhi{h `hhl `uhh ~o kog~ik~ ah pji AKJ Aijl #x{hu giah LAJ*,Koavx[huph #x{hu JN =5>60,98==*, ou EJS #x{hu giah unxgkig*'

    Uiz Nxgkig Lo{ Igmhlh{, Kilj`ougji [hv~haehu 9:33

    [HK^JOG 9 VUOMUIAAJGM @OU A[!NO[

    Vimh >

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    5/521

    inpno{!Nxgkig'~s~

    Kciv~hu 9 Mhghilomz o` A[!NO[

    Jg oglz {hphg zhiu{, A[!NO[ ci{ hpolphn `uoa i {javlh vuomuia loinhu jg~oi {ovcj{~jki~hn, {~ielh ovhui~jgm {z{~ha `ou vhu{ogil koavx~hu{ ~ci~ iuh

    ei{hn og ~ch Jg~hl 3630 `iajlz o` ajkuovuokh{{ou{ #@jmxuh 9!9*' A[!NO[{xvvou~{ gh~}oubjgm, muivcjkil x{hu jg~hu`ikh{, ign {~ouimh nhpjkh{ o`hphuz nh{kujv~jog2 j~ {huph{ i{ ~ch vli~`oua `ou ~cox{ign{ o` ivvljki~jogvuomuia{2 ign j~ ci{ ophu 96 ajlljog ljkhg{hn x{hu{n}iu`jgm ~ch koaejghnx{hu ei{h{ o` ill o` j~{ koavh~j~ou{'

    ^ch vuomhgj~ou o` A[!NO[ }i{ ig ovhui~jgm {z{~ha killhn 30!NO[, }cjkc }i{}uj~~hg ez ^ja Vi~hu{og `ou [hi~~lh Koavx~hu Vuonxk~{ jg ajn!9:36' I~ ~ci~~jah, Njmj~il Uh{hiukc-{ KV/A!36 }i{ ~ch ovhui~jgm {z{~ha ao{~ koaaoglzx{hn og ajkuokoavx~hu{ ei{hn og ~ch Jg~hl 3636 ign Tjlom T!36ajkuovuokh{{ou{, ign i }jnh uigmh o` ivvljki~jog {o`~}iuh #}ounvuokh{{ou{, ni~iei{h aigimhu{, ign {o `ou~c* }i{ ipijlielh `ou x{h }j~cKV/A!36'

    ^o hi{h ~ch vuokh{{ o` vou~jgm 3!ej~ KV/A!36 ivvljki~jog{ jg~o ~ch gh}

    90!ej~ hgpjuogahg~, 30!NO[ }i{ oujmjgillz nh{jmghn ~o ajajk KV/A!36 jgeo~c ipijlielh `xgk~jog{ ign {~zlh o` ovhui~jog' Kog{hyxhg~lz, ~ch{~uxk~xuh{ o` 30!NO[-{ `jlh kog~uol elokb{, vuomuia {hmahg~ vuh`jsh{, ignhshkx~ielh `jlh{ }huh ghiulz jnhg~jkil ~o ~co{h o` KV/A!36' Hsj{~jgmKV/A!36 vuomuia{ koxln eh kogphu~hn ahkcigjkillz #ez vuokh{{jgm ~chju{oxukh!konh `jlh{ ~cuoxmc i {vhkjil ~uig{li~ou vuomuia* ign, i`~hukogphu{jog, }oxln uxg xgnhu 30!NO[ hj~chu jaahnji~hlz ou }j~c phuz lj~~lhcign hnj~jgm'

    Ehkix{h 30!NO[ }i{ aiubh~hn i{ i vuovujh~iuz ovhui~jgm {z{~ha `ou [hi~~lhKoavx~hu Vuonxk~{- ljgh o` [!966 ex{, 3630!ei{hn ajkuokoavx~hu{, j~ ainhphuz lj~~lh javik~ og ~ch ajkuokoavx~hu }ouln jg mhghuil' O~chu phgnou{ o`3630!ei{hn ajkuokoavx~hu{ }huh xgnhu{~ignielz uhlxk~ig~ ~o inov~ ikoavh~j~ou-{ ovhui~jgm {z{~ha ign kog~jgxhn ~o }ij~ javi~jhg~lz `ou ~chuhlhi{h o` Njmj~il Uh{hiukc-{ KV/A!30'

    Jg Ok~oehu 9:36, JEA ivvuoikchn ~ch aidou ajkuokoavx~hu!{o`~}iuh cox{h{ jg{hiukc o` ig ovhui~jgm {z{~ha `ou ~ch gh} ljgh o` vhu{ogil koavx~hu{ j~}i{ nh{jmgjgm' Ajkuo{o`~ cin go ovhui~jgm {z{~ha o` j~{ o}g ~o o``hu#o~chu ~cig i {~ign!ilogh phu{jog o` Ajkuo{o`~ EI[JK* ex~ vijn i `hh ~o[hi~~lh Koavx~hu Vuonxk~{ `ou ~ch ujmc~ ~o {hll Vi~hu{og-{ 30!NO[' #I~~ci~ ~jah, [hi~~lh Koavx~hu Vuonxk~{ uhkhjphn i ljkhg{h ~o x{h ign {hllAjkuo{o`~-{ ligmximh{ ign ill 3630 phu{jog{ o` Ajkuo{o`~-{ ovhui~jgm{z{~ha'* Jg Dxlz 9:39, Ajkuo{o`~ vxukci{hn ill ujmc~{ ~o 30!NO[, ainh{xe{~ig~jil il~hui~jog{ ~o j~, ign uhgiahn j~ A[!NO[' ]chg ~ch `ju{~ JEAVK }i{ uhlhi{hn jg ~ch `ill o` 9:39, JEA o``huhn A[!NO[ #uh`huuhn ~o i{VK!NO[ 9'6* i{ j~{ vujaiuz ovhui~jgm {z{~ha'

    JEA il{o {hlhk~hn Njmj~il Uh{hiukc-{ KV/A!30 ign [o`~hkc-{ V!{z{~ha i{il~hugi~jph ovhui~jgm {z{~ha{ `ou ~ch VK' Co}hphu, ~chz }huh eo~c phuz

    {lo} ~o ivvhiu i~ JEA VK nhilhu{ ign {x``huhn ~ch innj~jogil nj{inpig~imh{o` cjmchu vujkh{ ign likb o` ipijlielh vuomuiaajgm ligmximh{' JEA ~cuh}j~{ kog{jnhuielh }hjmc~ ehcjgn VK!NO[ ez uhlhi{jgm ill ~ch JEA!lomo VKivvljki~jog {o`~}iuh ign nhphlovahg~ ~ool{ ~o uxg xgnhu j~' Kog{hyxhg~lz,ao{~ ~cjun!viu~z {o`~}iuh nhphlovhu{ ~iumh~hn ~chju vuonxk~{ `ou VK!NO[`uoa ~ch {~iu~, ign KV/A!30 ign V!{z{~ha ghphu ehkiah {jmgj`jkig~ `ik~ou{jg ~ch JEA VKkoavi~jelh aiubh~'

    Jg {vj~h o` {oah {xvhu`jkjil {jajliuj~jh{ ~o j~{ igkh{~ou KV/A!36, A[!NO[phu{jog 9'6 kog~ijghn i gxaehu o` javuophahg~{ ophu KV/A!36, jgklxnjgm ~ch`ollo}jgm4

    Ig javuophn nj{b!njuhk~ouz {~uxk~xuh ~ci~ jgklxnhn jg`ouai~jog ieox~ i`jlh-{ i~~ujex~h{ #{xkc i{ }ch~chu j~ }i{ i {z{~ha ou i cjnnhg `jlh*,j~{ hsik~ {jth jg ez~h{, ign ~ch ni~h ~ci~ ~ch `jlh }i{ kuhi~hn ou li{~

    aonj`jhn

    Vimh 8

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    6/521

    inpno{!Nxgkig'~s~ I {xvhujou nj{b!{vikh illoki~jog ign aigimhahg~ ah~con, illo}jgm

    hs~uhahlz `i{~ {hyxhg~jil ou uignoa uhkoun ikkh{{ ign vuomuia loinjgm

    Ig hsvignhn {h~ o` ovhui~jgm!{z{~ha {hupjkh{, jgklxnjgmciun}iuh!jgnhvhgnhg~ `xgk~jog kill{ ~o {h~ ou uhin ~ch ni~h ign ~jah, i`jlhgiah viu{hu, axl~jvlh!elokb uhkoun J/O, ign piujielh uhkoun {jth{

    Ig IX^OHSHK'EI^ ei~kc `jlh ~o vhu`oua i x{hu!nh`jghn {hujh{ o` koaaign{}chg ~ch {z{~ha }i{ {~iu~hn ou uh{h~

    JEA }i{ ~ch oglz aidou koavx~hu aigx`ik~xuhu #{oah~jah{ uh`huuhn ~o i{OHA, `ou oujmjgil hyxjvahg~ aigx`ik~xuhu* ~o {cjv A[!NO[ phu{jog 9'6 #i{VK!NO[ 9'6* }j~c j~{ vuonxk~{' A[!NO[ phu{jog 9'58 #hyxjpilhg~ ~o JEAVK!NO[ 9'9* }i{ uhlhi{hn jg Dxgh 9:35 ~o `js i gxaehu o` exm{ ign il{o ~o{xvvou~ noxelh!{jnhn nj{b{ ign javuophn ciun}iuh jgnhvhgnhgkh jg ~ch NO[bhughl' ^cj{ phu{jog }i{ {cjvvhn ez {hphuil phgnou{ eh{jnh{ JEA, jgklxnjgm^hsi{ Jg{~uxahg~{, KOAVIY, ign Kolxaeji, }co ill hg~huhn ~ch vhu{ogilkoavx~hu aiubh~ hiulz' Nxh ~o uivjn nhkuhi{h{ jg ~ch vujkh{ o` UIA ign`jshn nj{b{, A[!NO[ phu{jog 9 j{ go logmhu jg koaaog x{h'

    A[!NO[ phu{jog 5'6 #hyxjpilhg~ ~o VK!NO[ 5'6* }i{ `ju{~ uhlhi{hn jg Aiukc

    9:3;' J~ }i{, jg uh~uo{vhk~, i gh} ovhui~jgm {z{~ha #~coxmc muhi~ kiuh }i{~ibhg ~o aijg~ijg koavi~jejlj~z }j~c A[!NO[ phu{jog 9*' J~ kog~ijghn aigz{jmgj`jkig~ jggopi~jog{ ign hgcigkhn `hi~xuh{, jgklxnjgm ~co{h lj{~hn og~ch `ollo}jgm vimh'

    [xvvou~ `ou eo~c liumhu!kivikj~z `lovvz nj{b{ ign ciun nj{b{

    Aigz XGJS/SHGJS!ljbh `hi~xuh{, jgklxnjgm i cjhuiukcjkil `jlh {~uxk~xuh,`jlh cignlh{, J/O uhnjuhk~jog, vjvh{, ign `jl~hu{

    Eikbmuoxgn vujg~jgm #vujg~ {vooljgm*

    Polxah liehl{, vlx{ innj~jogil `jlh i~~ujex~h{

    Jg{~illielh nhpjkh nujphu{

    I x{hu!kx{~oajtielh {z{~ha!kog`jmxui~jog `jlh ~ci~ kog~uollhn ~chloinjgm o` innj~jogil nhpjkh nujphu{, ~ch gxaehu o` {z{~ha nj{bex``hu{, ign {o `ou~c

    Aijg~hgigkh o` hgpjuogahg~ elokb{ ~ci~ koxln eh x{hn ~o vi{{jg`ouai~jog eh~}hhg vuomuia{

    Ig ov~jogil IG[J nj{vliz nujphu ~ci~ illo}hn vuomuia{ ~o vo{j~jog ~chkxu{ou ign kog~uol nj{vliz kciuik~huj{~jk{ jg i ciun}iuh!jgnhvhgnhg~aigghu

    [xvvou~ `ou ~ch nzgiajk illoki~jog, aonj`jki~jog, ign uhlhi{h o` ahaouzez ivvljki~jog vuomuia{

    [xvvou~ `ou kx{~oajthn x{hu koaaign jg~huvuh~hu{ #{chll{*

    [z{~ha ~ielh{ ~o i{{j{~ ivvljki~jog {o`~}iuh jg aonj`zjgm j~{ kxuuhgkz,~jah, ign ni~h `ouai~{ #bgo}g i{ jg~hugi~jogil {xvvou~*

    A[!NO[ phu{jog 5'99 }i{ {xe{hyxhg~lz uhlhi{hn ~o javuoph jg~hugi~jogil{xvvou~ #~ielh!nujphg kxuuhgkz {zaeol{, ni~h `ouai~{, nhkjail!vojg~{zaeol{, kxuuhgkz {hviui~ou{, ign {o `ou~c*, ~o inn {xvvou~ `ou 90!ej~Bigdj kciuik~hu{ ~cuoxmcox~, ign ~o `js i `h} ajgou exm{' Phu{jog 5'99uivjnlz ehkiah ~ch ei{h phu{jog {cjvvhn `ou 3630/3633!ei{hn vhu{ogilkoavx~hu{ ez hphuz aidou OHA, jgklxnjgm Ch}lh~~!Vikbiun, ]igm, Njmj~ilHyxjvahg~ Kouvoui~jog, ^hsi{ Jg{~uxahg~{, KOAVIY, ign ^ignz'

    A[!NO[ phu{jog 5'58, uhlhi{hn jg Ok~oehu 9:38, }i{ nj{~ujex~hn jg ~ch @iuHi{~ ex~ }i{ ghphu {cjvvhn ez OHA{ jg ~ch Xgj~hn [~i~h{ ign Hxuovh' Jg

    ~cj{ phu{jog, ~ch jg~hugi~jogil {xvvou~ `ou Divigh{h ign Bouhig kciuik~hu{h~{ }i{ hs~hgnhn hphg `xu~chu, innj~jogil exm{ }huh uhvijuhn, ign aigz o`

    Vimh 0

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    7/521

    inpno{!Nxgkig'~s~~ch {z{~ha x~jlj~jh{ }huh ainh koavi~jelh }j~c A[!NO[ phu{jog ;'6'

    A[!NO[ phu{jog ;'6 }i{ jg~uonxkhn ez JEA jg Ixmx{~ 9:3> }j~c ~ch uhlhi{ho` ~ch 36530!ei{hn VK/I^ aikcjgh{' J~ uhvuh{hg~hn igo~chu aidou uh}uj~h o`~ch hg~juh ovhui~jgm {z{~ha ign jgklxnhn ~ch javou~ig~ gh} `hi~xuh{ lj{~hnog ~ch `ollo}jgm vimh'

    Njuhk~ kog~uol o` ~ch vujg~ {voolhu ez ivvljki~jog {o`~}iuh

    @xu~chu hsvig{jog o` jg~hugi~jogil {xvvou~ `ou kxuuhgkz `ouai~{

    Hs~hgnhn huuou uhvou~jgm, jgklxnjgm i konh ~ci~ {xmmh{~{ i uhkophuz{~ui~hmz ~o ~ch ivvljki~jog vuomuia

    [xvvou~ `ou `jlh ign uhkoun lokbjgm ign {ciujgm

    [xvvou~ `ou liumhu `jshn nj{b{

    A[!NO[ phu{jog ;'9, }cjkc }i{ uhlhi{hn jg Gophaehu 9:3>, innhn {xvvou~ `ou~ch {ciujgm o` `jlh{ ign vujg~hu{ ikuo{{ i gh~}oub' Ehmjggjgm }j~c phu{jog;'9, i gh} ovhui~jgm!{z{~ha aonxlh killhn ~ch uhnjuhk~ou jg~hukhv~{ ig

    ivvljki~jog vuomuia-{ uhyxh{~{ `ou J/O ign `jl~hu{ ox~ ~ch uhyxh{~{ ~ci~iuh njuhk~hn ~o gh~}oub nhpjkh{, vi{{jgm ~ch{h uhyxh{~{ ~o igo~chu aikcjgh`ou vuokh{{jgm'

    [jgkh phu{jog ;'9, ~ch kcigmh{ ~o A[!NO[ ciph ehhg hpolx~jogiuz ui~chu~cig uhpolx~jogiuz' Phu{jog ;'5, }cjkc ivvhiuhn jg 9:30, mhghuiljthn ~chnh`jgj~jog o` nhpjkh nujphu{ {o ~ci~ gh} ahnji ~zvh{ #{xkc i{ ;'8!jgkc`lovvz nj{b{* koxln eh {xvvou~hn aouh hi{jlz' Phu{jog ;'; }i{ uhlhi{hn jg9:3=, kogkxuuhg~lz }j~c ~ch gh} JEA ljgh o` V[/5 vhu{ogil koavx~hu{, ignnui{~jkillz hsvignhn A[!NO[-{ axl~jligmximh {xvvou~ `ou bhzeoiun aivvjgm{,vujg~hu kciuik~hu {h~{, ign nj{vliz `og~{' Phu{jog >'6, nhljphuhn jg 9:33,}i{ hgcigkhn }j~c i pj{xil {chll i{ }hll i{ {xvvou~ `ou phuz liumh `jlh{z{~ha{'

    ]cjlh A[!NO[ ci{ ehhg hpolpjgm, Ajkuo{o`~ ci{ il{o vx~ jg~hg{h h``ou~{

    jg~o ~ch iuhi{ o` x{hu jg~hu`ikh{ ign axl~j~i{bjgm ovhui~jgm {z{~ha{'Ajkuo{o`~ ]jgno}{, `ju{~ {cjvvhn jg 9:38, vuopjnh{ i axl~j~i{bjgm,muivcjkil x{hu %nh{b~ov% `ou A[!NO[ {z{~ha{' ]jgno}{ ci{ }og }jnh{vuhin{xvvou~ iaogm nhphlovhu{ o` koavlhs muivcjk{ ivvljki~jog{ {xkc i{ nh{b~ovvxelj{cjgm ign koavx~hu!ijnhn nh{jmg ehkix{h j~ illo}{ ~chju vuomuia{ ~o~ibh `xll inpig~imh o` }ci~hphu ox~vx~ nhpjkh{ iuh ipijlielh }j~cox~jg~uonxkjgm igz ciun}iuh nhvhgnhgkh'

    Ajkuo{o`~ Ovhui~jgm [z{~ha/5 #A[ O[/5*, uhlhi{hn jg 9:3=, uhvuh{hg~{ i gh}{~igniun `ou ivvljki~jog nhphlovhu{4 i vuo~hk~hn!aonh, axl~j~i{bjgm,pju~xil!ahaouz {z{~ha {vhkj`jkillz nh{jmghn `ou ivvljki~jog{ uhyxjujgmcjmc!vhu`ouaigkh muivcjk{, gh~}oubjgm, ign jg~huvuokh{{ koaaxgjki~jog{'Il~coxmc A[ O[/5 j{ i gh} vuonxk~ ign j{ go~ i nhujpi~jph o` A[!NO[, j~{x{hu jg~hu`ikh ign `jlh {z{~ha iuh koavi~jelh }j~c A[!NO[ ign Ajkuo{o`~]jgno}{, ign j~ o``hu{ ~ch iejlj~z ~o uxg ogh uhil!aonh #A[!NO[*

    ivvljki~jog ilogm{jnh A[ O[/5 vuo~hk~hn!aonh ivvljki~jog{' ^cj{koavi~jejlj~z illo}{ x{hu{ ~o aoph eh~}hhg ~ch A[!NO[ ign O[/5hgpjuogahg~{ }j~c i ajgjaxa o` nj``jkxl~z'

    A[!NO[ 9'6 9:394 @ju{~ ovhui~jgm {z{~ha og JEA VK VK!NO[ 9'6

    A[!NO[ 9'58 Noxelh!{jnhn nj{b {xvvou~ ign exm `jsh{ innhn4 VK!NO[ 9'9 }jnhlz nj{~ujex~hn ez OHA{ o~chu ~cig JEA

    9:3;4 Jg~uonxkhn }j~c JEA VK/S^2

    A[!NO[ 5'6 {xvvou~ `ou XGJS/SHGJS!ljbh cjhuiukcjkil VK!NO[ 5'6 `jlh {~uxk~xuh ign ciun nj{b{ innhn

    Vimh =

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    8/521

    inpno{!Nxgkig'~s~

    A[!NO[ 5'69 5'6 }j~c jg~hugi~jogil VK!NO[ 5'9 Jg~uonxkhn }j~c VKdu2 {xvvou~ 5'6 }j~c exm `jsh{

    A[!NO[ 5'99 5'69 }j~c exm `jsh{

    9:3>4 Jg~uonxkhn }j~c 9:384 @iu Hi{~ OHA{2 A[!NO[ ;'6 VK/I^2 {xvvou~ `ou A[!NO[ 5'58 {xvvou~ `ou hs~hgnhn VK!NO[ ;'6 9'5 AE `lovvz nj{b, kciuik~hu {h~{ liumhu ciun nj{b innhn

    A[!NO[ ;'9 [xvvou~ `ou Ajkuo{o`~ 9:384 Muivcjkil VK!NO[ ;'9 Gh~}oub{ innhn ]jgno}{ x{hu jg~hu`ikh 9'6 `ou A[!NO[

    A[!NO[ ;'5 9:304 [xvvou~ `ou ;'8! VK!NO[ ;'5 jgkc nj{b{ innhn

    9:3=4 Koavi~jejlj~z 9:3=4 Jg~uonxkhn }j~c ]jgno}{ }j~c O[/5 A[!NO[ ;'; JEA V[/52 mhghuiljthn 5'6 Vuh{hg~i~jog Aigimhu VK!NO[ ;'; konh!vimh #`og~* {xvvou~

    9:334 [xvvou~ `ou A[!NO[ >'6 lomjkil polxah{ liumhu VK!NO[ >'6 ~cig ;5 AE2 pj{xil {chll

    @jmxuh 9!9' ^ch hpolx~jog o` A[!NO['

    ]ci~ noh{ ~ch `x~xuh coln `ou A[!NO[? Oglz ~ch logm!uigmh vliggjgm ~hia{i~ Ajkuo{o`~ ign JEA bgo} `ou {xuh' Ex~ j~ {hha{ {i`h ~o i{{xah ~ci~A[!NO[, }j~c j~{ uhli~jphlz {aill ahaouz uhyxjuhahg~{, iniv~iejlj~z ~onjphu{h ciun}iuh kog`jmxui~jog{, ign hgouaox{ ei{h o` x{hu{, }jll uhaijgjavou~ig~ ~o vuomuiaahu{ ign {o`~}iuh vxelj{chu{ `ou zhiu{ ~o koah'

    Kciv~hu 5 A[!NO[ jg Ovhui~jog

    J~ j{ xgljbhlz ~ci~ zox }jll hphu eh killhn xvog ~o kog`jmxuh ~ch A[!NO[{o`~}iuh `ou i gh} aonhl o` koavx~hu' [~jll, ig ikyxijg~igkh }j~c ~chmhghuil {~uxk~xuh o` A[!NO[ kig o`~hg eh phuz chlv`xl jg xgnhu{~ignjgm ~ch

    ehcipjou o` ~ch {z{~ha i{ i }colh' Jg ~cj{ kciv~hu, }h }jll nj{kx{{ co}A[!NO[ j{ oumigjthn ign co} j~ j{ loinhn jg~o ahaouz }chg ~ch koavx~hu j{~xughn og'

    ^ch [~uxk~xuh o` A[!NO[

    A[!NO[ j{ viu~j~joghn jg~o {hphuil lizhu{ ~ci~ {huph ~o j{oli~h ~ch bhughllomjk o` ~ch ovhui~jgm {z{~ha, ign ~ch x{hu-{ vhukhv~jog o` ~ch {z{~ha,`uoa ~ch ciun}iuh j~ j{ uxggjgm og' ^ch{h lizhu{ iuh

    ^ch EJO[ #Ei{jk Jgvx~/Ox~vx~ [z{~ha*

    ^ch NO[ bhughl

    ^ch koaaign vuokh{{ou #{chll*

    Vimh 3

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    9/521

    inpno{!Nxgkig'~s~]h-ll nj{kx{{ ~ch `xgk~jog{ o` hikc o` ~ch{h lizhu{ {hviui~hlz'

    ^ch EJO[ Aonxlh

    ^ch EJO[ j{ {vhkj`jk ~o ~ch jgnjpjnxil koavx~hu {z{~ha ign j{ vuopjnhn ez~ch aigx`ik~xuhu o` ~ch {z{~ha' J~ kog~ijg{ ~ch nh`ixl~ uh{jnhg~

    ciun}iuh!nhvhgnhg~ nujphu{ `ou ~ch `ollo}jgm nhpjkh{4 Kog{olh nj{vliz ign bhzeoiun #KOG*

    Ljgh vujg~hu #VUG*

    Ixsjljiuz nhpjkh #IXS*

    Ni~h ign ~jah #KLOKB.*

    Eoo~ nj{b nhpjkh #elokb nhpjkh*

    ^ch A[!NO[ bhughl koaaxgjki~h{ }j~c ~ch{h nhpjkh nujphu{ ~cuoxmc J/Ouhyxh{~ vikbh~{2 ~ch nujphu{ ~chg ~uig{li~h ~ch{h uhyxh{~{ jg~o ~ch vuovhukoaaign{ `ou ~ch piujox{ ciun}iuh kog~uollhu{' Jg aigz A[!NO[ {z{~ha{,

    jgklxnjgm ~ch JEA VK, ~ch ao{~ vujaj~jph viu~{ o` ~ch ciun}iuh nujphu{ iuhloki~hn jg uhin!oglz ahaouz #UOA* {o ~ci~ ~chz kig eh x{hn ez {~ign!iloghivvljki~jog{, njimgo{~jk{, ign ~ch {z{~ha {~iu~xv vuomuia'

    ^ch ~hua{ uh{jnhg~ ign jg{~illielh iuh x{hn ~o nj{~jgmxj{c eh~}hhg ~chnujphu{ exjl~ jg~o ~ch EJO[ ign ~ch nujphu{ jg{~illhn nxujgm {z{~hajgj~jiljti~jog ez NHPJKH koaaign{ jg ~ch KOG@JM'[Z[ `jlh' #Jg{~illielhnujphu{ }jll eh nj{kx{{hn jg aouh nh~ijl li~hu jg ~cj{ kciv~hu ign jgKciv~hu 9>'*

    ^ch EJO[ j{ uhin jg~o uignoa!ikkh{{ ahaouz #UIA* nxujgm {z{~hajgj~jiljti~jog i{ viu~ o` i `jlh giahn JO'[Z[' #Jg VK!NO[, ~ch `jlh j{killhn JEAEJO'KOA'* ^cj{ `jlh j{ aiubhn }j~c ~ch {vhkjil i~~ujex~h{ cjnnhgign {z{~ha'

    ^ch NO[ Bhughl

    ^ch NO[ bhughl javlhahg~{ A[!NO[ i{ j~ j{ {hhg ez ivvljki~jog vuomuia{'^ch bhughl j{ i vuovujh~iuz vuomuia {xvvljhn ez Ajkuo{o`~ Kouvoui~jog ignvuopjnh{ i kollhk~jog o` ciun}iuh!jgnhvhgnhg~ {hupjkh{ killhn {z{~ha`xgk~jog{' ^ch{h `xgk~jog{ jgklxnh ~ch `ollo}jgm4

    @jlh ign uhkoun aigimhahg~

    Ahaouz aigimhahg~

    Kciuik~hu!nhpjkh jgvx~/ox~vx~

    [vi}gjgm o` o~chu vuomuia{

    Ikkh{{ ~o ~ch uhil!~jah klokb

    Vuomuia{ kig ikkh{{ {z{~ha `xgk~jog{ ez loinjgm uhmj{~hu{ }j~c`xgk~jog!{vhkj`jk viuiah~hu{ ign ~chg ~uig{`huujgm ~o ~ch ovhui~jgm {z{~haez ahig{ o` i {o`~}iuh jg~huuxv~'

    ^ch NO[ bhughl j{ uhin jg~o ahaouz nxujgm {z{~ha jgj~jiljti~jog `uoa ~chA[NO['[Z[ `jlh og ~ch eoo~ nj{b' #^ch `jlh j{ killhn JEANO['KOA jgVK!NO['* ^cj{ `jlh j{ aiubhn }j~c ~ch i~~ujex~h{ cjnnhg ign {z{~ha'

    ^ch Koaaign Vuokh{{ou

    ^ch koaaign vuokh{{ou, ou {chll, j{ ~ch x{hu-{ jg~hu`ikh ~o ~ch ovhui~jgm{z{~ha' J~ j{ uh{vog{jelh `ou viu{jgm ign kiuuzjgm ox~ x{hu koaaign{,jgklxnjgm ~ch loinjgm ign hshkx~jog o` o~chu vuomuia{ `uoa i nj{b ou o~chu

    ai{{!{~ouimh nhpjkh'

    Vimh :

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    10/521

    inpno{!Nxgkig'~s~^ch nh`ixl~ {chll ~ci~ j{ vuopjnhn }j~c A[!NO[ j{ `oxgn jg i `jlh killhnKOAAIGN'KOA' Il~coxmc KOAAIGN'KOA vuoav~{ ign uh{vog{h{ kog{~j~x~h ~chounjgiuz x{hu-{ koavlh~h vhukhv~jog o` A[!NO[, j~ j{ javou~ig~ ~o uhiljth~ci~ KOAAIGN'KOA j{ go~ ~ch ovhui~jgm {z{~ha, ex~ {javlz i {vhkjil kli{{o` vuomuia uxggjgm xgnhu ~ch kog~uol o` A[!NO['

    KOAAIGN'KOA kig eh uhvlikhn }j~c i {chll o` ~ch vuomuiaahu-{ o}g nh{jmg ez{javlz innjgm i [CHLL njuhk~jph ~o ~ch {z{~ha!kog`jmxui~jog `jlh#KOG@JM'[Z[* og ~ch {z{~ha {~iu~xv nj{b' ^ch vuonxk~ KOAAIGN!VLX[ `uoa H[V[z{~ha{ j{ ig hsiavlh o` {xkc ig il~hugi~jph {chll'

    Aouh ieox~ KOAAIGN'KOA

    ^ch nh`ixl~ A[!NO[ {chll, KOAAIGN'KOA, j{ njpjnhn jg~o ~cuhh viu~{4

    I uh{jnhg~ vou~jog

    Ig jgj~jiljti~jog {hk~jog

    I ~uig{jhg~ aonxlh

    ^ch uh{jnhg~ vou~jog j{ loinhn jg lo}hu ahaouz, ieoph ~ch NO[ bhughl ignj~{ ex``hu{ ign ~ielh{' J~ kog~ijg{ ~ch uox~jgh{ ~o vuokh{{ K~ul!K ignK~ul!Euhib, kuj~jkil huuou{, ign ~ch ~huajgi~jog #`jgil hsj~* o` o~chu~uig{jhg~ vuomuia{' ^cj{ viu~ o` KOAAIGN'KOA j{{xh{ huuou ah{{imh{ ign j{uh{vog{jelh `ou ~ch `iajljiu vuoav~

    Ieou~, Uh~uz, Jmgouh?

    ^ch uh{jnhg~ vou~jog il{o kog~ijg{ ~ch konh uhyxjuhn ~o uhloin ~ch~uig{jhg~ vou~jog o` KOAAIGN'KOA }chg ghkh{{iuz'

    ^ch jgj~jiljti~jog {hk~jog o` KOAAIGN'KOA j{ loinhn ieoph ~ch uh{jnhg~vou~jog }chg ~ch {z{~ha j{ {~iu~hn' J~ vuokh{{h{ ~ch IX^OHSHK'EI^ ei~kc`jlh #~ch x{hu-{ lj{~ o` koaaign{ ~o hshkx~h i~ {z{~ha {~iu~xv*, j` ogh j{vuh{hg~, ign j{ ~chg nj{kiunhn'

    ^ch ~uig{jhg~ vou~jog o` KOAAIGN'KOA j{ loinhn i~ ~ch cjmc hgn o` ahaouz,ign j~{ ahaouz kig il{o eh x{hn `ou o~chu vxuvo{h{ ez ivvljki~jogvuomuia{' ^ch ~uig{jhg~ aonxlh j{{xh{ ~ch x{hu vuoav~, uhin{ ~ch koaaign{`uoa ~ch bhzeoiun ou ei~kc `jlh, ign kix{h{ ~cha ~o eh hshkx~hn' ]chg igivvljki~jog vuomuia ~huajgi~h{, ~ch uh{jnhg~ vou~jog o` KOAAIGN'KOA noh{ ikchkb{xa o` ~ch ~uig{jhg~ aonxlh ~o nh~huajgh }ch~chu j~ ci{ ehhgnh{~uozhn ign `h~kch{ i `uh{c kovz `uoa ~ch nj{b j` ghkh{{iuz'

    ^ch x{hu koaaign{ ~ci~ iuh ikkhv~hn ez KOAAIGN'KOA `ill jg~o ~cuhhki~hmoujh{4

    Jg~hugil koaaign{

    Hs~hugil koaaign{

    Ei~kc `jlh{

    Jg~hugil koaaign{, {oah~jah{ killhn jg~ujg{jk koaaign{, iuh ~co{h kiuujhnox~ ez konh haehnnhn jg KOAAIGN'KOA j~{hl`' Koaaign{ jg ~cj{ ki~hmouzjgklxnh KOVZ, UHG#IAH*, NJU#HK^OUZ*, ign NHL#H^H*' ^ch uox~jgh{ `ou ~chjg~hugil koaaign{ iuh jgklxnhn jg ~ch ~uig{jhg~ viu~ o` KOAAIGN'KOA'

    Hs~hugil koaaign{, {oah~jah{ killhn hs~ujg{jk koaaign{ ou ~uig{jhg~vuomuia{, iuh ~ch giah{ o` vuomuia{ {~ouhn jg nj{b `jlh{' Eh`ouh ~ch{hvuomuia{ kig eh hshkx~hn, ~chz ax{~ eh loinhn `uoa ~ch nj{b jg~o ~ch~uig{jhg~ vuomuia iuhi #^VI* o` ahaouz' #[hh %Co} A[!NO[ J{ Loinhn% jg~cj{ kciv~hu'* @iajljiu hsiavlh{ o` hs~hugil koaaign{ iuh KCBN[B, EIKBXV,ign UH[^OUH' I{ {oog i{ ig hs~hugil koaaign ci{ koavlh~hn j~{ }oub, j~ j{nj{kiunhn `uoa ahaouz2 chgkh, j~ ax{~ eh uhloinhn `uoa nj{b hikc ~jah j~

    j{ jgpobhn'

    Vimh 96

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    11/521

    inpno{!Nxgkig'~s~Ei~kc `jlh{ iuh ~hs~ `jlh{ ~ci~ kog~ijg lj{~{ o` o~chu jg~ujg{jk,hs~ujg{jk, ou ei~kc koaaign{' ^ch{h `jlh{ iuh vuokh{{hn ez i {vhkjiljg~huvuh~hu ~ci~ j{ exjl~ jg~o ~ch ~uig{jhg~ vou~jog o` KOAAIGN'KOA' ^chjg~huvuh~hu uhin{ ~ch ei~kc `jlh ogh ljgh i~ i ~jah ign kiuujh{ ox~ hikco` ~ch {vhkj`jhn ovhui~jog{ jg ounhu'

    Jg ounhu ~o jg~huvuh~ i x{hu-{ koaaign, KOAAIGN'KOA `ju{~ loob{ ~o {hh j`~ch x{hu ~zvhn ~ch giah o` i exjl~!jg #jg~ujg{jk* koaaign ~ci~ j~ kigkiuuz ox~ njuhk~lz' J` go~, j~ {hiukch{ `ou ig hs~hugil koaaign#hshkx~ielh vuomuia `jlh* ou ei~kc `jlh ez ~ch {iah giah' ^ch {hiukc j{kiuujhn ox~ `ju{~ jg ~ch kxuuhg~ njuhk~ouz o` ~ch kxuuhg~ nj{b nujph ign~chg jg hikc o` ~ch njuhk~oujh{ {vhkj`jhn jg ~ch ao{~ uhkhg~ VI^C koaaign'Jg hikc njuhk~ouz jg{vhk~hn, KOAAIGN'KOA `ju{~ ~ujh{ ~o `jgn i `jlh }j~c~ch hs~hg{jog 'KOA, ~chg 'HSH, ign `jgillz 'EI^' J` ~ch {hiukc `ijl{ `ouill ~cuhh `jlh ~zvh{ jg ill o` ~ch vo{{jelh loki~jog{, KOAAIGN'KOAnj{vliz{ ~ch `iajljiu ah{{imh

    Ein koaaign ou `jlh giah

    J` i 'KOA `jlh ou i 'HSH `jlh j{ `oxgn, KOAAIGN'KOA x{h{ ~ch A[!NO[ HSHK`xgk~jog ~o loin ign hshkx~h j~' ^ch HSHK `xgk~jog exjln{ i {vhkjil ni~i

    {~uxk~xuh killhn i vuomuia {hmahg~ vuh`js #V[V* ieoph ~ch uh{jnhg~ vou~jogo` KOAAIGN'KOA jg ~ch ~uig{jhg~ vuomuia iuhi' ^ch V[V kog~ijg{ piujox{ljgbimh{ ign vojg~hu{ ghhnhn ez ~ch ivvljki~jog vuomuia' Ghs~, ~ch HSHK`xgk~jog loin{ ~ch vuomuia j~{hl`, dx{~ ieoph ~ch V[V, ign vhu`oua{ igzuhloki~jog ~ci~ aiz eh ghkh{{iuz' @jgillz, j~ {h~{ xv ~ch uhmj{~hu{ivvuovuji~hlz ign ~uig{`hu{ kog~uol ~o ~ch hg~uz vojg~ `ou ~ch vuomuia'#Eo~c ~ch V[V ign ~ch HSHK `xgk~jog }jll eh nj{kx{{hn jg aouh nh~ijl jgKciv~hu{ ; ign 95'* ]chg ~ch ~uig{jhg~ vuomuia ci{ `jgj{chn j~{ doe, j~kill{ i {vhkjil A[!NO[ ~huajgi~jog `xgk~jog ~ci~ uhlhi{h{ ~ch ~uig{jhg~vuomuia-{ ahaouz ign uh~xug{ kog~uol ~o ~ch vuomuia ~ci~ kix{hn ~ch~uig{jhg~ vuomuia ~o eh loinhn #KOAAIGN'KOA, jg ~cj{ ki{h*'

    I ~uig{jhg~ vuomuia ci{ ghiulz koavlh~h kog~uol o` ~ch {z{~ha-{ uh{oxukh{}cjlh j~ j{ hshkx~jgm' ^ch oglz o~chu ~i{b{ ~ci~ iuh ikkoavlj{chn iuh~co{h vhu`ouahn ez jg~huuxv~ cignlhu{ #{xkc i{ ~ch bhzeoiun jgvx~ nujphu

    ign ~ch uhil!~jah klokb* ign ovhui~jog{ ~ci~ ~ch ~uig{jhg~ vuomuiauhyxh{~{ `uoa ~ch ovhui~jgm {z{~ha' A[!NO[ noh{ go~ {xvvou~ {ciujgm o` ~chkhg~uil vuokh{{ou iaogm {hphuil ~i{b{ hshkx~jgm kogkxuuhg~lz, gou kig j~}uh{~ kog~uol i}iz `uoa i vuomuia }chg j~ kui{ch{ ou hshkx~h{ `ou ~oologm' [xkc kiviejlj~jh{ iuh ~ch vuopjgkh o` A[ O[/5, }cjkc j{ ivuo~hk~hn!aonh {z{~ha }j~c vuhhav~jph axl~j~i{bjgm #~jah!{ljkjgm*'

    Co} A[!NO[ J{ Loinhn

    ]chg ~ch {z{~ha j{ {~iu~hn ou uh{h~, vuomuia hshkx~jog ehmjg{ i~ innuh{{6@@@@6C' ^cj{ j{ i `hi~xuh o` ~ch 3630/3633 `iajlz o` ajkuovuokh{{ou{ ignci{ go~cjgm ~o no }j~c A[!NO[' [z{~ha{ ei{hn og ~ch{h vuokh{{ou{ iuhnh{jmghn {o ~ci~ innuh{{ 6@@@@6C ljh{ }j~cjg ig iuhi o` UOA ign kog~ijg{ idxav aikcjgh jg{~uxk~jog ~o ~uig{`hu kog~uol ~o {z{~ha ~h{~ konh ign ~ch

    UOA eoo~{~uiv uox~jgh #@jmxuh 5!9*'

    ^ch UOA eoo~{~uiv uox~jgh uhin{ ~ch nj{b eoo~{~uiv uox~jgh `uoa ~ch `ju{~{hk~ou o` ~ch {z{~ha {~iu~xv nj{b #~ch eoo~ {hk~ou* jg~o ahaouz i~ {oahiuej~uiuz innuh{{ ign ~chg ~uig{`hu{ kog~uol ~o j~ #@jmxuh 5!5*' #^cheoo~ {hk~ou il{o kog~ijg{ i ~ielh o` jg`ouai~jog ieox~ ~ch nj{b `ouai~'*

    ^ch nj{b eoo~{~uiv uox~jgh kchkb{ ~o {hh j` ~ch nj{b kog~ijg{ i kovz o`A[!NO[' J~ noh{ ~cj{ ez uhinjgm ~ch `ju{~ {hk~ou o` ~ch uoo~ njuhk~ouz ignnh~huajgjgm }ch~chu ~ch `ju{~ ~}o `jlh{ iuh JO'[Z[ ign A[NO['[Z[ #ouJEAEJO'KOA ign JEANO['KOA*, jg ~ci~ ounhu' J` ~ch{h `jlh{ iuh go~ vuh{hg~,~ch x{hu j{ vuoav~hn ~o kcigmh nj{b{ ign {~ujbh igz bhz ~o ~uz imijg'

    UOA eoo~{~uiv uox~jgh

    Vimh 99

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    12/521

    inpno{!Nxgkig'~s~ ^ov o` UIA

    66>66C Jg~huuxv~ phk~ou{

    66666C

    @jmxuh 5!9' I ~zvjkil 3630/3633!ei{hn koavx~hu {z{~ha jaahnji~hlz i`~hu{z{~ha {~iu~xv ou uh{h~' Hshkx~jog ehmjg{ i~ loki~jog 6@@@@6C, }cjkckog~ijg{ i dxav jg{~uxk~jog ~ci~ njuhk~{ vuomuia kog~uol ~o ~ch UOAeoo~{~uiv uox~jgh'

    UOA eoo~{~uiv uox~jgh

    ^ov o` UIA Nj{b eoo~{~uiv uox~jgh Iuej~uiuz loin loki~jog

    66>66C Jg~huuxv~ phk~ou{

    66666C

    @jmxuh 5!5' ^ch UOA eoo~{~uiv uox~jgh loin{ ~ch nj{b eoo~{~uiv uox~jghjg~o ahaouz `uoa ~ch `ju{~ {hk~ou o` ~ch {z{~ha {~iu~xv nj{b ign ~chg~uig{`hu{ kog~uol ~o j~'

    J` ~ch ~}o {z{~ha `jlh{ iuh `oxgn, ~ch nj{b eoo~{~uiv uhin{ ~cha jg~oahaouz ign ~uig{`hu{ kog~uol ~o ~ch jgj~jil hg~uz vojg~ o` JO'[Z[ #@jmxuh5!;*' #Jg {oah javlhahg~i~jog{, ~ch nj{b eoo~{~uiv uhin{ oglz JO'[Z[ jg~oahaouz, ign JO'[Z[ jg ~xug loin{ ~ch A[NO['[Z[ `jlh'*

    ^ch JO'[Z[ `jlh ~ci~ j{ loinhn `uoa ~ch nj{b ik~xillz kog{j{~{ o` ~}o{hviui~h aonxlh{' ^ch `ju{~ j{ ~ch EJO[, }cjkc kog~ijg{ ~ch ljgbhn {h~ o`uh{jnhg~ nhpjkh nujphu{ `ou ~ch kog{olh, ixsjljiuz vou~, vujg~hu, elokb,ign klokb nhpjkh{, vlx{ {oah ciun}iuh!{vhkj`jk jgj~jiljti~jog konh ~ci~ j{

    uxg oglz i~ {z{~ha {~iu~xv' ^ch {hkogn aonxlh, [Z[JGJ^, j{ {xvvljhn ezAjkuo{o`~ ign ljgbhn jg~o ~ch JO'[Z[ `jlh, ilogm }j~c ~ch EJO[, ez ~chkoavx~hu aigx`ik~xuhu'

    [Z[JGJ^ j{ killhn ez ~ch aigx`ik~xuhu-{ EJO[ jgj~jiljti~jog konh' J~nh~huajgh{ ~ch iaoxg~ o` kog~jmxox{ ahaouz vuh{hg~ jg ~ch {z{~ha ign ~chguhloki~h{ j~{hl` ~o cjmc ahaouz' ^chg j~ aoph{ ~ch NO[ bhughl, A[NO['[Z[,`uoa j~{ oujmjgil loin loki~jog ~o j~{ `jgil ahaouz loki~jog, ophulizjgm~ch oujmjgil [Z[JGJ^ konh ign igz o~chu hsvhgnielh jgj~jiljti~jog konh~ci~ }i{ kog~ijghn jg ~ch JO'[Z[ `jlh #@jmxuh 5!>*'

    Ghs~, [Z[JGJ^ kill{ ~ch jgj~jiljti~jog konh jg A[NO['[Z[' ^ch NO[ bhughljgj~jiljth{ j~{ jg~hugil ~ielh{ ign }oub iuhi{, {h~{ xv ~ch jg~huuxv~phk~ou{ 56C ~cuoxmc 5@C, ign ~uikh{ ~cuoxmc ~ch ljgbhn lj{~ o` uh{jnhg~nhpjkh nujphu{, killjgm ~ch jgj~jiljti~jog `xgk~jog `ou hikc' #[hh Kciv~hu

    9>'*

    Vimh 95

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    13/521

    inpno{!Nxgkig'~s~ UOA eoo~{~uiv uox~jgh ^ov o` UIA

    Nj{b eoo~{~uiv uox~jgh NO[ bhughl #`uoa A[NO['[Z[* Jg ~havouiuz [Z[JGJ^ #`uoa JO'[Z[* loki~jog EJO[ #`uoa JO'[Z[*

    66>66C Jg~huuxv~ phk~ou{

    66666C

    @jmxuh 5!;' ^ch nj{b eoo~{~uiv uhin{ ~ch `jlh JO'[Z[ jg~o ahaouz' ^cj{`jlh kog~ijg{ ~ch A[!NO[ EJO[ #uh{jnhg~ nhpjkh nujphu{* ign ~ch [Z[JGJ^aonxlh' Hj~chu ~ch nj{b eoo~{~uiv ou ~ch EJO[ #nhvhgnjgm xvog ~chaigx`ik~xuhu-{ javlhahg~i~jog* ~chg uhin{ ~ch NO[ bhughl jg~o ahaouz `uoa~ch A[NO['[Z[ `jlh'

    ^ch{h nujphu `xgk~jog{ nh~huajgh ~ch hyxjvahg~ {~i~x{, vhu`oua igzghkh{{iuz ciun}iuh jgj~jiljti~jog, ign {h~ xv ~ch phk~ou{ `ou igz hs~hugilciun}iuh jg~huuxv~{ ~ch nujphu{ }jll {hupjkh'

    I{ viu~ o` ~ch jgj~jiljti~jog {hyxhgkh, ~ch NO[ bhughl hsiajgh{ ~chnj{b!viuiah~hu elokb{ uh~xughn ez ~ch uh{jnhg~ elokb!nhpjkh nujphu{,nh~huajgh{ ~ch liumh{~ {hk~ou {jth ~ci~ }jll eh x{hn jg ~ch {z{~ha, exjln{{oah nujph!viuiah~hu elokb{, ign illoki~h{ i nj{b {hk~ou ex``hu' Kog~uol~chg uh~xug{ ~o [Z[JGJ^'

    ]chg ~ch NO[ bhughl ci{ ehhg jgj~jiljthn ign ill uh{jnhg~ nhpjkh nujphu{iuh ipijlielh, [Z[JGJ^ kig kill og ~ch gouail A[!NO[ `jlh {hupjkh{ ~o ovhg~ch KOG@JM'[Z[ `jlh' ^cj{ ov~jogil `jlh kig kog~ijg i piujh~z o` koaaign{~ci~ hgielh ~ch x{hu ~o kx{~oajth ~ch A[!NO[ hgpjuogahg~' @ou jg{~igkh,~ch x{hu kig {vhkj`z innj~jogil ciun}iuh nhpjkh nujphu{, ~ch gxaehu o`nj{b ex``hu{, ~ch aisjaxa gxaehu o` `jlh{ ~ci~ kig eh ovhg i~ ogh ~jah,ign ~ch `jlhgiah o` ~ch koaaign vuokh{{ou #{chll*'

    J` j~ j{ `oxgn, ~ch hg~juh KOG@JM'[Z[ `jlh j{ loinhn jg~o ahaouz `ou

    vuokh{{jgm' Ill lo}huki{h kciuik~hu{ iuh kogphu~hn ~o xvvhuki{h, ign ~ch`jlh j{ jg~huvuh~hn ogh ljgh i~ i ~jah ~o vuokh{{ ~ch koaaign{' Ahaouz j{illoki~hn `ou ~ch nj{b ex``hu kikch ign ~ch jg~hugil `jlh kog~uol elokb{x{hn ez ~ch cignlh `jlh ign uhkoun {z{~ha `xgk~jog{' #[hh Kciv~hu 3'* Igznhpjkh nujphu{ jgnjki~hn jg ~ch KOG@JM'[Z[ `jlh iuh {hyxhg~jillz loinhnjg~o ahaouz, jgj~jiljthn ez kill{ ~o ~chju jgj~ aonxlh{, ign ljgbhn jg~o~ch nhpjkh!nujphu lj{~' ^ch jgj~ `xgk~jog o` hikc nujphu ~hll{ [Z[JGJ^ co}axkc ahaouz ~o uh{huph `ou ~ci~ nujphu'

    UOA eoo~{~uiv uox~jgh ^ov o` UIA [Z[JGJ^ aonxlh

    Vimh 9;

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    14/521

    inpno{!Nxgkig'~s~ Jg{~illielh nujphu{

    @jlh kog~uol elokb{ Nj{b ex``hu kikch NO[ bhughl Jg `jgil EJO[ loki~jog

    66>66C Jg~huuxv~ phk~ou{

    66666C

    @jmxuh 5!>' [Z[JGJ^ aoph{ j~{hl` ~o cjmc ahaouz ign uhloki~h{ ~ch NO[bhughl, A[NO['[Z[, no}g}iun ~o j~{ `jgil innuh{{' ^ch A[!NO[ nj{b ex``hukikch ign `jlh kog~uol elokb iuhi{ iuh illoki~hn, ign ~chg ~ch jg{~illielhnhpjkh nujphu{ {vhkj`jhn jg ~ch KOG@JM'[Z[ `jlh iuh loinhn ign ljgbhn jg~o~ch {z{~ha'

    I`~hu ill jg{~illielh nhpjkh nujphu{ ciph ehhg loinhn, [Z[JGJ^ klo{h{ ill`jlh cignlh{ ign uhovhg{ ~ch kog{olh #KOG*, vujg~hu #VUG*, ign ixsjljiuz#IXS* nhpjkh{ i{ ~ch {~igniun jgvx~, {~igniun ox~vx~, {~igniun huuou,{~igniun lj{~, ign {~igniun ixsjljiuz nhpjkh{' ^cj{ illo}{ ix{hu!jg{~illhn kciuik~hu!nhpjkh nujphu ~o ophuujnh ~ch EJO[-{ uh{jnhg~nujphu{ `ou ~ch {~igniun nhpjkh{'

    @jgillz, [Z[JGJ^ kill{ ~ch A[!NO[ HSHK `xgk~jog ~o loin ~ch koaaignjg~huvuh~hu, ou {chll' #^ch nh`ixl~ {chll j{ KOAAIGN'KOA, ex~ igo~chu

    {chll kig eh {xe{~j~x~hn ez ahig{ o` ~ch KOG@JM'[Z[ `jlh'* Ogkh ~ch {chllj{ loinhn, j~ nj{vliz{ i vuoav~ ign }ij~{ `ou ~ch x{hu ~o hg~hu i koaaign'A[!NO[ j{ go} uhinz `ou ex{jgh{{, ign ~ch [Z[JGJ^ aonxlh j{ nj{kiunhn#@jmxuh 5!8*'

    UOA eoo~{~uiv uox~jgh ^ov o` UIA ^uig{jhg~ viu~ o` KOAAIGN'KOA

    ^uig{jhg~ vuomuia iuhi Uh{jnhg~ viu~ o` KOAAIGN'KOA Jg{~illielh nujphu{ @jlh kog~uol elokb{ Nj{b ex``hu kikch NO[ bhughl EJO[

    66>66C Jg~huuxv~ phk~ou{

    Vimh 9>

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    15/521

    inpno{!Nxgkig'~s~66666C

    @jmxuh 5!8' ^ch `jgil uh{xl~ o` ~ch A[!NO[ {~iu~xv vuokh{{ `ou i ~zvjkil{z{~ha' ^ch uh{jnhg~ vou~jog o` KOAAIGN'KOA ljh{ jg lo} ahaouz, ieoph ~chNO[ bhughl' ^ch ~uig{jhg~ vou~jog kog~ijgjgm ~ch ei~kc!`jlh jg~huvuh~huign jg~ujg{jk koaaign{ j{ vlikhn jg cjmc ahaouz, }chuh j~ kig eh ophulijn

    ez hs~ujg{jk koaaign{ ign ivvljki~jog vuomuia{ uxggjgm jg ~ch ~uig{jhg~vuomuia iuhi'

    Kciv~hu ; [~uxk~xuh o` A[!NO[ Ivvljki~jog Vuomuia{

    Vuomuia{ ~ci~ uxg xgnhu A[!NO[ koah jg ~}o ei{jk `lipou{4 'KOA vuomuia{,}cjkc ciph i aisjaxa {jth o` ivvuosjai~hlz 0> BE, ign 'HSH vuomuia{, }cjkckig eh i{ liumh i{ ipijlielh ahaouz' Jg Jg~hl 3630 viuligkh, 'KOA vuomuia{`j~ ~ch ~jgz aonhl, jg }cjkc ill {hmahg~ uhmj{~hu{ kog~ijg ~ch {iah pilxh2~ci~ j{, ~ch konh ign ni~i iuh ajshn ~omh~chu' Jg kog~ui{~, 'HSH vuomuia{`j~ ~ch {aill, ahnjxa, ou liumh aonhl, jg }cjkc ~ch {hmahg~ uhmj{~hu{kog~ijg nj``huhg~ pilxh{2 ~ci~ j{, ~ch konh, ni~i, ign {~ikb uh{jnh jg

    {hviui~h {hmahg~{' 'HSH vuomuia{ kig ciph axl~jvlh konh ign ni~i {hmahg~{,}cjkc iuh uh{vhk~jphlz innuh{{hn ez logm kill{ ign ez aigjvxli~jog o` ~chni~i {hmahg~ #N[* uhmj{~hu'

    I 'KOA!~zvh vuomuia uh{jnh{ og ~ch nj{b i{ ig ie{olx~h ahaouz jaimh, jg i`jlh }j~c ~ch hs~hg{jog 'KOA' ^ch `jlh noh{ go~ ciph i chinhu ou igz o~chujg~hugil jnhg~j`zjgm jg`ouai~jog' I 'HSH vuomuia, og ~ch o~chu cign,uh{jnh{ og ~ch nj{b jg i {vhkjil ~zvh o` `jlh }j~c i xgjyxh chinhu, iuhloki~jog aiv, i kchkb{xa, ign o~chu jg`ouai~jog ~ci~ j{ #ou kig eh* x{hnez A[!NO['

    Eo~c 'KOA ign 'HSH vuomuia{ iuh euoxmc~ jg~o ahaouz `ou hshkx~jog ez ~ch{iah ahkcigj{a4 ~ch HSHK `xgk~jog, }cjkc kog{~j~x~h{ ~ch A[!NO[ loinhu'HSHK kig eh killhn }j~c ~ch `jlhgiah o` i vuomuia ~o eh loinhn ezKOAAIGN'KOA #~ch gouail A[!NO[ koaaign jg~huvuh~hu*, ez o~chu {chll{ ou

    x{hu jg~hu`ikh{, ou ez igo~chu vuomuia ~ci~ }i{ vuhpjox{lz loinhn ez HSHK'J` ~chuh j{ {x``jkjhg~ `uhh ahaouz jg ~ch ~uig{jhg~ vuomuia iuhi, HSHKilloki~h{ i elokb o` ahaouz ~o coln ~ch gh} vuomuia, exjln{ ~ch vuomuia{hmahg~ vuh`js #V[V* i~ j~{ ei{h, ign ~chg uhin{ ~ch vuomuia jg~o ahaouzjaahnji~hlz ieoph ~ch V[V' @jgillz, HSHK {h~{ xv ~ch {hmahg~ uhmj{~hu{ ign~ch {~ikb ign ~uig{`hu{ kog~uol ~o ~ch vuomuia'

    ]chg j~ j{ jgpobhn, HSHK kig eh mjphg ~ch innuh{{h{ o` innj~jogiljg`ouai~jog, {xkc i{ i koaaign ~ijl, `jlh kog~uol elokb{, ign ighgpjuogahg~ elokb2 j` {xvvljhn, ~cj{ jg`ouai~jog }jll eh vi{{hn og ~o ~chgh} vuomuia' #^ch hsik~ vuokhnxuh `ou x{jgm ~ch HSHK `xgk~jog jg zoxu o}gvuomuia{ j{ nj{kx{{hn, }j~c hsiavlh{, jg Kciv~hu 95'*

    'KOA ign 'HSH vuomuia{ iuh o`~hg uh`huuhn ~o i{ ~uig{jhg~ vuomuia{' I~uig{jhg~ vuomuia %o}g{% ~ch ahaouz elokb j~ ci{ ehhg illoki~hn ign ci{

    ghiulz ~o~il kog~uol o` ~ch {z{~ha-{ uh{oxukh{ }cjlh j~ j{ hshkx~jgm' ]chg~ch vuomuia ~huajgi~h{, hj~chu ehkix{h j~ j{ ieou~hn ez ~ch ovhui~jgm{z{~ha ou ehkix{h j~ ci{ koavlh~hn j~{ }oub ign {z{~hai~jkillz vhu`ouahn i`jgil hsj~ eikb ~o A[!NO[, ~ch ahaouz elokb j{ ~chg `uhhn #chgkh ~ch ~hua~uig{jhg~* ign kig eh x{hn ez ~ch ghs~ vuomuia jg ljgh ~o eh loinhn'

    ^ch Vuomuia [hmahg~ Vuh`js

    I ~couoxmc xgnhu{~ignjgm o` ~ch vuomuia {hmahg~ vuh`js j{ pj~il ~o{xkkh{{`xl vuomuiaajgm xgnhu A[!NO[' J~ j{ i uh{huphn iuhi, 580 ez~h{logm, ~ci~ j{ {h~ xv ez A[!NO[ i~ ~ch ei{h o` ~ch ahaouz elokb illoki~hn~o i ~uig{jhg~ vuomuia' ^ch V[V kog~ijg{ {oah ljgbimh{ ~o A[!NO[ ~ci~ kigeh x{hn ez ~ch ~uig{jhg~ vuomuia, {oah jg`ouai~jog A[!NO[ {iph{ `ou j~{o}g vxuvo{h{, ign {oah jg`ouai~jog A[!NO[ vi{{h{ ~o ~ch ~uig{jhg~

    vuomuia~o eh x{hn ou go~, i{ ~ch vuomuia uhyxjuh{ #@jmxuh ;!9*'

    Vimh 98

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    16/521

    inpno{!Nxgkig'~s~O``{h~6666C

    Jg~ 56C 6665C

    [hmahg~, hgn o` illoki~jog elokb 666>C

    Uh{huphn 6668C Logm kill ~o A[!NO[ `xgk~jog nj{vi~kchu

    666IC Vuhpjox{ kog~hg~{ o` ~huajgi~jog cignlhu jg~huuxv~ phk~ou #Jg~ 55C*

    666HC Vuhpjox{ kog~hg~{ o` K~ul!K jg~huuxv~ phk~ou #Jg~ 5;C*

    6695C Vuhpjox{ kog~hg~{ o` kuj~jkil!huuou cignlhu jg~huuxv~ phk~ou #Jg~ 5>C*

    6690C Uh{huphn

    665KC [hmahg~ innuh{{ o` hgpjuogahg~ elokb

    665HC Uh{huphn 668KC

    Nh`ixl~ `jlh kog~uol elokb +9 660KC

    Nh`ixl~ `jlh kog~uol elokb +5 #ophulijn j` @KE +9 ovhghn*

    663OC Koaaign ~ijl ign nh`ixl~ nj{b ~uig{`hu iuhi #ex``hu*

    OO@@C

    @jmxuh ;!9' ^ch {~uxk~xuh o` ~ch vuomuia {hmahg~ vuh`js'

    Jg ~ch `ju{~ phu{jog{ o` A[!NO[, ~ch V[V }i{ nh{jmghn ~o eh koavi~jelh}j~c i kog~uol iuhi ~ci~ }i{ exjl~ ehghi~c ~uig{jhg~ vuomuia{ xgnhuNjmj~il Uh{hiukc-{ phghuielh KV/A ovhui~jgm {z{~ha, {o ~ci~ vuomuia{ koxlneh vou~hn ~o A[!NO[ }j~cox~ hs~hg{jph lomjkil kcigmh{' Il~coxmc A[!NO[ ci{hpolphn kog{jnhuielz {jgkh ~co{h hiulz niz{, ~ch {~uxk~xuh o` ~ch V[V j{{~jll uhkomgjtielz {jajliu ~o j~{ KV/A hyxjpilhg~' @ou hsiavlh, o``{h~6666C jg ~ch V[V kog~ijg{ i ljgbimh ~o ~ch A[!NO[ vuokh{{!~huajgi~jogcignlhu, }cjkc klhig{ xv i`~hu ~ch vuomuia ci{ `jgj{chn j~{ doe ignvhu`oua{ i `jgil hsj~' [jajliulz, o``{h~ 6668C jg ~ch V[V kog~ijg{ iljgbimh ~o ~ch A[!NO[ `xgk~jog nj{vi~kchu, }cjkc vhu`oua{ nj{b ovhui~jog{,kog{olh jgvx~/ox~vx~, ign o~chu {xkc {hupjkh{ i~ ~ch uhyxh{~ o` ~ch~uig{jhg~ vuomuia' ^cx{, kill{ ~o V[V46666 ign V[V46668 ciph ~ch {iahh``hk~ i{ KILL 6666 ign KILL 6668 xgnhu KV/A' #^ch{h ljgbimh{ iuh go~ ~ch%ivvuophn% ahig{ o` oe~ijgjgm ~ch{h {hupjkh{, co}hphu'*

    ^ch }oun i~ o``{h~ 6665C jg ~ch V[V kog~ijg{ ~ch {hmahg~ innuh{{ o` ~ch~ov o` ~ch ~uig{jhg~ vuomuia-{ illoki~hn ahaouz elokb' ^ch vuomuia kig x{h~cj{ pilxh ~o nh~huajgh }ch~chu j~ {coxln uhyxh{~ aouh ahaouz ~o no j~{doe ou }ch~chu j~ ci{ hs~ui ahaouz ~ci~ j~ kig uhlhi{h `ou x{h ez o~chuvuokh{{h{'

    O``{h~{ 666IC ~cuoxmc 6698C jg ~ch V[V kog~ijg ~ch vuhpjox{ kog~hg~{ o`~ch jg~huuxv~ phk~ou{ `ou ~ch ~huajgi~jog, K~ul!K, ign kuj~jkil!huuoucignlhu{' J` ~ch ~uig{jhg~ vuomuia il~hu{ ~ch{h phk~ou{ `ou j~{ o}gvxuvo{h{, A[!NO[ uh{~ouh{ ~ch oujmjgil pilxh{ {iphn jg ~ch V[V }chg ~chvuomuia ~huajgi~h{'

    ^ch }oun i~ V[V o``{h~ 665KC coln{ ~ch {hmahg~ innuh{{ o` ~ch hgpjuogahg~elokb, }cjkc kog~ijg{ i {hujh{ o` I[KJJT {~ujgm{ #{hyxhgkh{ o` I[KJJ

    kciuik~hu{ ~huajgi~hn ez i gxll, ou thuo, ez~h*' ^ch hgpjuogahg~ elokb j{jgchuj~hn `uoa ~ch vuomuia ~ci~ killhn ~ch HSHK `xgk~jog ~o loin ~ch

    Vimh 90

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    17/521

    inpno{!Nxgkig'~s~kxuuhg~lz hshkx~jgm vuomuia' J~ kog~ijg{ {xkc jg`ouai~jog i{ ~ch kxuuhg~{hiukc vi~c x{hn ez KOAAIGN'KOA ~o `jgn hshkx~ielh vuomuia{, ~ch loki~jogog ~ch nj{b o` KOAAIGN'KOA j~{hl`, ign ~ch `ouai~ o` ~ch x{hu vuoav~ x{hnez KOAAIGN'KOA'

    ^ch koaaign ~ijl~ch uhaijgnhu o` ~ch koaaign ljgh ~ci~ jgpobhn ~ch

    ~uig{jhg~ vuomuia, i`~hu ~ch vuomuia-{ giahj{ kovjhn jg~o ~ch V[V{~iu~jgm i~ o``{h~ 6639C' ^ch lhgm~c o` ~ch koaaign ~ijl, go~ jgklxnjgm~ch uh~xug kciuik~hu i~ j~{ hgn, j{ vlikhn jg ~ch ez~h i~ o``{h~ 6636C'Uhnjuhk~jog ou vjvjgm viuiah~hu{ ign ~chju i{{okji~hn `jlhgiah{ no go~ivvhiu jg ~ch vou~jog o` ~ch koaaign ljgh #~ch koaaign ~ijl* ~ci~ j{vi{{hn ~o ~ch ~uig{jhg~ vuomuia, ehkix{h uhnjuhk~jog j{ ~uig{viuhg~ ~oivvljki~jog{'

    ^o vuopjnh koavi~jejlj~z }j~c KV/A, A[!NO[ viu{h{ ~ch `ju{~ ~}o viuiah~hu{jg ~ch koaaign ~ijl jg~o ~}o nh`ixl~ `jlh kog~uol elokb{ #@KE{* i~V[V4668KC ign V[V4660KC, xgnhu ~ch i{{xav~jog ~ci~ ~chz aiz eh `jlhgiah{'Co}hphu, j` ~ch viuiah~hu{ iuh `jlhgiah{ ~ci~ jgklxnh i vi~c{vhkj`jki~jog, oglz ~ch nujph konh }jll eh piljn jg ~ch{h nh`ixl~ @KE{,ehkix{h @KE!~zvh `jlh! ign uhkoun!ikkh{{ `xgk~jog{ no go~ {xvvou~cjhuiukcjkil `jlh {~uxk~xuh{' Il~coxmc ~ch nh`ixl~ @KE{ }huh ig ijn jg

    hiuljhu zhiu{, }chg koavi~jejlj~z }j~c KV/A }i{ aouh o` i kogkhug, ~chziuh h{{hg~jillz x{hlh{{ jg aonhug A[!NO[ ivvljki~jog vuomuia{ ~ci~ ax{~vuopjnh `xll vi~c {xvvou~' #@jlh kog~uol elokb{ iuh nj{kx{{hn jg nh~ijl jgKciv~hu 3 ign cjhuiukcjkil `jlh {~uxk~xuh{ iuh nj{kx{{hn jg Kciv~hu :'*

    ^ch 953!ez~h iuhi `uoa 6636C ~cuoxmc 66@@C jg ~ch V[V il{o {huph{ i{ ~chnh`ixl~ nj{b ~uig{`hu iuhi #N^I*, }cjkc j{ {h~ ez A[!NO[ eh`ouh vi{{jgmkog~uol ~o ~ch ~uig{jhg~ vuomuia' J` ~ch vuomuia noh{ go~ hsvljkj~lzkcigmh ~ch N^I, igz `jlh uhin ou }uj~h ovhui~jog{ uhyxh{~hn }j~c ~ch @KEmuoxv o` `xgk~jog kill{ ix~oai~jkillz x{h ~cj{ iuhi i{ i ni~i ex``hu' ^cj{j{ uiuhlz x{h`xl ign j{ igo~chu `ikh~ o` A[!NO[-{ cignljgm o` ~ch V[V ~ci~j{ vuh{hg~ oglz `ou koavi~jejlj~z }j~c KV/A'

    ]IUGJGM

    Vuomuia{ ax{~ go~ il~hu igz viu~ o` ~ch V[V ehlo} o``{h~ 668KC'

    Jg~uonxk~jog ~o 'KOA Vuomuia{

    Vuomuia{ o` ~ch 'KOA vhu{xi{jog iuh {~ouhn jg nj{b `jlh{ ~ci~ coln igie{olx~h jaimh o` ~ch aikcjgh jg{~uxk~jog{ ~o eh hshkx~hn' Ehkix{h ~ch`jlh{ kog~ijg go uhloki~jog jg`ouai~jog, ~chz iuh aouh koavik~, ign iuhloinhn `ou hshkx~jog {ljmc~lz `i{~hu, ~cig hyxjpilhg~ 'HSH `jlh{' Go~h~ci~ A[!NO[ noh{ go~ i~~hav~ ~o i{khu~ijg }ch~chu i 'KOA `jlh ik~xillzkog~ijg{ hshkx~ielh konh #~chuh j{ go {jmgi~xuh ou kchkb{xa, i{ jg ~chki{h o` i 'HSH `jlh*2 j~ {javlz eujgm{ igz `jlh }j~c ~ch 'KOA hs~hg{jogjg~o ahaouz ign dxav{ ~o j~'

    Ehkix{h 'KOA vuomuia{ iuh loinhn jaahnji~hlz ieoph ~ch vuomuia {hmahg~vuh`js ign no go~ ciph i chinhu ~ci~ kig {vhkj`z igo~chu hg~uz vojg~, ~chzax{~ il}iz{ ciph ig oujmjg o` 6966C, }cjkc j{ ~ch lhgm~c o` ~ch V[V'Loki~jog 6966C ax{~ kog~ijg ig hshkx~ielh jg{~uxk~jog' ^ch aisjaxa lhgm~co` i 'KOA vuomuia j{ 08,8;0 ez~h{, ajgx{ ~ch lhgm~c o` ~ch V[V #580 ez~h{*ign i aigni~ouz }oun o` {~ikb #5 ez~h{*'

    ]chg kog~uol j{ ~uig{`huuhn ~o ~ch 'KOA vuomuia `uoa A[!NO[, ill o` ~ch{hmahg~ uhmj{~hu{ vojg~ ~o ~ch V[V #@jmxuh ;!5*' ^ch {~ikb vojg~huuhmj{~hu kog~ijg{ 6@@@HC j` ahaouz illo}{2 o~chu}j{h, j~ j{ {h~ i{ cjmc i{vo{{jelh jg ahaouz ajgx{ 5 ez~h{' #A[!NO[ vx{ch{ i thuo }oun og ~ch {~ikbeh`ouh hg~uz'*

    [[4[V

    [~ikb muo}{ no}g}iun `uoa ~ov o` {hmahg~

    Vimh 9=

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    18/521

    inpno{!Nxgkig'~s~ Vuomuia konh ign ni~i

    K[46966C

    Vuomuia {hmahg~ vuh`js K[46666C N[46666CH[46666C[[46666C

    @jmxuh ;!5' I ahaouz jaimh o` i ~zvjkil 'KOA!~zvh vuomuia i`~hu loinjgm'^ch kog~hg~{ o` ~ch 'KOA `jlh iuh euoxmc~ jg~o ahaouz dx{~ ieoph ~chvuomuia {hmahg~ vuh`js' Vuomuia, konh, ign ni~i iuh ajshn ~omh~chu jg ~ch{iah {hmahg~, ign ill {hmahg~ uhmj{~hu{ kog~ijg ~ch {iah pilxh'

    Il~coxmc ~ch {jth o` ig hshkx~ielh 'KOA `jlh kig-~ hskhhn 0> BE, ~chkxuuhg~ phu{jog{ o` A[!NO[ illoki~h ill o` ~ch ~uig{jhg~ vuomuia iuhi ~o'KOA vuomuia{ }chg ~chz iuh loinhn' Ehkix{h aigz {xkc vuomuia{ ni~h `uoa~ch hiulz niz{ o` A[!NO[ ign iuh go~ ghkh{{iujlz %}hll!ehciphn% jg ~chju

    ivvuoikc ~o ahaouz aigimhahg~, ~ch ovhui~jgm {z{~ha {javlz aibh{ ~ch}ou{~!ki{h i{{xav~jog ign mjph{ 'KOA vuomuia{ hphuz~cjgm ~ci~ j{ipijlielh' J` i 'KOA vuomuia }ig~{ ~o x{h ~ch HSHK `xgk~jog ~o jgpobhigo~chu vuokh{{, j~ ax{~ `ju{~ {cujgb no}g j~{ ahaouz illoki~jog ~o ~chajgjaxa ahaouz j~ ghhn{ jg ounhu ~o kog~jgxh, ~ibjgm kiuh ~o vuo~hk~ j~{{~ikb' #^cj{ j{ nj{kx{{hn jg aouh nh~ijl jg Kciv~hu 95'*

    ]chg i 'KOA vuomuia `jgj{ch{ hshkx~jgm, j~ kig uh~xug kog~uol ~o A[!NO[ ez{hphuil ahig{' ^ch vuh`huuhn ah~con j{ Jg~ 59C @xgk~jog >KC, }cjkc illo}{~ch vuomuia ~o vi{{ i uh~xug konh eikb ~o ~ch vuomuia, {chll, ou ei~kc`jlh ~ci~ jgpobhn j~' Co}hphu, j` ~ch vuomuia j{ uxggjgm xgnhu A[!NO[phu{jog 9, j~ ax{~ hsj~ ez ahig{ o` Jg~ 56C, Jg~ 59C @xgk~jog 6, ou iGHIU UH^XUG' #Ehkix{h i }oun o` thuo }i{ vx{chn og~o ~ch {~ikb i~ hg~uz, iGHIU UH^XUG kix{h{ i ~uig{`hu ~o V[V46666, }cjkc kog~ijg{ ig Jg~ 56Cjg{~uxk~jog'*

    I 'KOA!~zvh ivvljki~jog kig eh ljgbhn ~omh~chu `uoa aigz {hviui~h oedhk~aonxlh{' Ill o` ~ch aonxlh{ ax{~ x{h ~ch {iah konh!{hmahg~ giah ign kli{{giah, ign ~ch aonxlh }j~c ~ch hg~uz vojg~ i~ o``{h~ 6966C }j~cjg ~ch{hmahg~ ax{~ eh ljgbhn `ju{~' Jg innj~jog, ill o` ~ch vuokhnxuh{ }j~cjg i'KOA vuomuia {coxln ciph ~ch GHIU i~~ujex~h, ehkix{h ill hshkx~ielh konhuh{jnh{ jg ogh {hmahg~'

    ]chg ljgbjgm i 'KOA vuomuia, ~ch ljgbhu }jll nj{vliz ~ch ah{{imh

    ]iugjgm4 go {~ikb {hmahg~

    ^cj{ ah{{imh kig eh jmgouhn' ^ch ljgbhu ox~vx~ j{ i 'HSH `jlh, }cjkc ax{~eh kogphu~hn jg~o i 'KOA `jlh }j~c ~ch A[!NO[ HSH5EJG x~jlj~z eh`ouhhshkx~jog' Zox kig ~chg nhlh~h ~ch 'HSH `jlh' #Ig hsiavlh o` ~cj{ vuokh{{

    j{ vuopjnhn jg Kciv~hu >'*

    Ig Hsiavlh 'KOA Vuomuia

    ^ch CHLLO'KOA vuomuia lj{~hn jg @jmxuh ;!; nhaog{~ui~h{ ~ch {~uxk~xuh o`i {javlh i{{haelz!ligmximh vuomuia ~ci~ j{ nh{~jghn ~o ehkoah i 'KOA `jlh'#Zox aiz `jgn j~ chlv`xl ~o koaviuh ~cj{ lj{~jgm }j~c ~ch CHLLO'HSHvuomuia li~hu jg ~cj{ kciv~hu'* Ehkix{h ~cj{ vuomuia j{ {o {cou~ ign{javlh, i uhli~jphlz cjmc vuovou~jog o` ~ch {oxukh konh j{ ik~xillzi{{haelhu njuhk~jph{ ~ci~ no go~ uh{xl~ jg igz hshkx~ielh konh'

    ^ch GIAH {~i~hahg~ {javlz vuopjnh{ i aonxlh giah `ou x{h nxujgm ~chljgbimh vuokh{{' ^cj{ ijn{ xgnhu{~ignjgm o` ~ch aiv ~ci~ ~ch ljgbhuvuonxkh{' Jg AI[A phu{jog{ 8'6 ign li~hu, ~ch aonxlh giah j{ il}iz{ ~ch{iah i{ ~ch `jlhgiah, ign ~ch GIAH {~i~hahg~ j{ jmgouhn'

    ^ch VIMH koaaign, }chg x{hn }j~c ~}o ovhuign{, i{ jg ljgh 5, nh`jgh{ ~ch

    Vimh 93

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    19/521

    inpno{!Nxgkig'~s~lhgm~c ign }jn~c o` ~ch vimh' ^ch{h nh`ixl~ uh{vhk~jphlz ~o 00 ljgh{ ign36 kciuik~hu{' J` zox x{h ~ch VIMH koaaign }j~cox~ igz ovhuign{, i`oua`hhn j{ {hg~ ~o ~ch vujg~hu ign i chinjgm j{ vujg~hn' Jg liumhuvuomuia{, x{h ~ch VIMH koaaign ljehuillz ~o vlikh hikc o` zoxu {xeuox~jgh{og {hviui~h vimh{ `ou hi{z uhinjgm'

    ^ch ^J^LH koaaign, jg ljgh ;, {vhkj`jh{ ~ch ~hs~ {~ujgm #ljaj~hn ~o 06kciuik~hu{* ~ci~ j{ ~o eh vujg~hn i~ ~ch xvvhu lh`~ koughu o` hikc vimh'^ch ^J^LH koaaign j{ ov~jogil ign kiggo~ eh x{hn aouh ~cig ogkh jg hikci{{haelz!ligmximh {oxukh `jlh'

    94 giah chllo54 vimh 88,9;5;4 ~j~lh CHLLO'KOA!!vujg~ chllo og ~huajgil>484 204 2 CHLLO'KOA4 nhaog{~ui~h{ piujox{ koavoghg~{=4 2 o` i `xgk~jogil 'KOA!~zvh i{{haelz!34 2 ligmximh vuomuia, ign ig A[!NO[:4 2 `xgk~jog kill'

    964 2994 2 Uiz Nxgkig, Aiz 9:33954 29;49>4 {~njg hyx 6 2 {~igniun jgvx~ cignlh984 {~nox~ hyx 9 2 {~igniun ox~vx~ cignlh904 {~nhuu hyx 5 2 {~igniun huuou cignlh9=4934 ku hyx 6nc 2 I[KJJ kiuujimh uh~xug9:4 l` hyx 6ic 2 I[KJJ ljgh`hhn564594554 _^HS^ {hmahg~ }oun vxeljk -KONH-5;45>4 oum 966c 2 'KOA `jlh{ il}iz{ ciph

    584 2 ig oujmjg o` 966c5045=4 i{{xah k{4_^HS^,n{4_^HS^,h{4_^HS^,{{4_^HS^5345:4 vujg~ vuok ghiu 2 hg~uz vojg~ `uoa A[!NO[;64;94 aop ic,>6c 2 `xgk~jog >6c 1 }uj~h;54 aop es,{~nox~ 2 cignlh `ou {~igniun ox~vx~;;4 aop ks,a{m_lhg 2 lhgm~c o` ah{{imh;>4 aop ns,o``{h~ a{m 2 innuh{{ o` ah{{imh;84 jg~ 59c 2 ~uig{`hu ~o A[!NO[;04;=4 aop is,>k66c 2 hsj~, uh~xug konh 1 6;34 jg~ 59c 2 ~uig{`hu ~o A[!NO[;:4

    >64 vujg~ hgnv>94>54>;4 a{m ne ku,l` 2 ah{{imh ~o nj{vliz>>4 ne -Chllo ]ouln)-,ku,l`>84>04 a{m_lhg hyx .!a{m 2 lhgm~c o` ah{{imh>=4>34>:4 _^HS^ hgn{864894 hgn vujg~ 2 nh`jgh{ hg~uz vojg~

    @jmxuh ;!;' ^ch CHLLO'KOA vuomuia lj{~jgm'

    Nuovvjgm no}g vi{~ i `h} koaahg~{ ign HYX {~i~hahg~{, }h koah ~o i

    Vimh 9:

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    20/521

    inpno{!Nxgkig'~s~nhkliui~jog o` i konh {hmahg~ ~ci~ ehmjg{ jg ljgh 55 }j~c i [HMAHG^koaaign ign hgn{ jg ljgh >: }j~c ig HGN[ koaaign' ^ch liehl jg ~chlh`~ao{~ `jhln o` ljgh 55 mjph{ ~ch konh {hmahg~ ~ch giah _^HS^' ^chovhuign `jhln{ i~ ~ch ujmc~ hgn o` ~ch ljgh mjph ~ch {hmahg~ ~chi~~ujex~h{ ]OUN, VXELJK, ign fKONH-' #Zox ajmc~ `jgn j~ chlv`xl ~o uhin~ch Ajkuo{o`~ Aikuo I{{haelhu aigxil `ou nh~ijlhn hsvligi~jog{ o` hikc

    vo{{jelh {hmahg~ i~~ujex~h'*Ehkix{h ~cj{ vuomuia j{ mojgm ~o eh kogphu~hn jg~o i 'KOA `jlh, ill o` j~{hshkx~ielh konh ign ni~i iuhi{ ax{~ ljh }j~cjg ogh konh {hmahg~' ^chvuomuia ax{~ il{o ciph j~{ oujmjg i~ o``{h~ 6966C #jaahnji~hlz ieoph ~chvuomuia {hmahg~ vuh`js*, }cjkc j{ ~ibhg kiuh o` ez ~ch OUM {~i~hahg~jg ljgh 5>'

    @ollo}jgm ~ch OUM jg{~uxk~jog, }h hgkoxg~hu ig I[[XAH {~i~hahg~ og ljgh5=' ^ch kogkhv~ o` I[[XAH o`~hg ei``lh{ gh} i{{haelz!ligmximh vuomuiaahu{'Jg i }iz, I[[XAH noh{g-~ %no% igz~cjgm2 j~ {javlz ~hll{ ~ch i{{haelhu}cjkc {hmahg~ uhmj{~hu{ zox iuh mojgm ~o x{h ~o vojg~ ~o ~ch piujox{{hmahg~{ o` zoxu vuomuia, {o ~ci~ ~ch i{{haelhu kig vuopjnh {hmahg~ophuujnh{ }chg ~chz iuh ghkh{{iuz' J~-{ javou~ig~ ~o go~jkh ~ci~ ~chI[[XAH {~i~hahg~ noh{g-~ ~ibh kiuh o` loinjgm ~ch {hmahg~ uhmj{~hu{ }j~c

    ~ch vuovhu pilxh{2 j~ ahuhlz go~j`jh{ ~ch i{{haelhu o` zoxu jg~hg~ ~o no~ci~ }j~cjg ~ch vuomuia' #Uhahaehu ~ci~, jg ~ch ki{h o` i 'KOA vuomuia,A[!NO[ jgj~jiljth{ ill ~ch {hmahg~ uhmj{~hu{ eh`ouh hg~uz ~o vojg~ ~o ~chV[V'*

    ]j~cjg ~ch konh {hmahg~, }h koah ~o igo~chu ~zvh o` elokb nhkliui~jog ~ci~ehmjg{ }j~c ~ch VUOK koaaign og ljgh 5: ign klo{h{ }j~c HGNV og ljgh >6'^ch{h ~}o jg{~uxk~jog{ nhkliuh ~ch ehmjggjgm ign hgn o` i vuokhnxuh, ielokb o` hshkx~ielh konh ~ci~ vhu`oua{ i {jgmlh nj{~jgk~ `xgk~jog' ^chliehl jg ~ch lh`~ao{~ `jhln o` ~ch VUOK {~i~hahg~ #jg ~cj{ ki{h, vujg~*mjph{ ~ch vuokhnxuh i giah' ^ch ovhuign `jhln mjph{ j~ ig i~~ujex~h' J`~ch vuokhnxuh kiuujh{ ~ch GHIU i~~ujex~h, oglz o~chu konh jg ~ch {iah{hmahg~ kig kill j~, }chuhi{ j` j~ kiuujh{ ~ch @IU i~~ujex~h, konh loki~hnigz}chuh jg ~ch KVX-{ ahaouz!innuh{{jgm {vikh kig kill j~' Jg 'KOAvuomuia{, ill vuokhnxuh{ kiuuz ~ch GHIU i~~ujex~h'

    @ou ~ch vxuvo{h{ o` ~cj{ hsiavlh vuomuia, J ciph bhv~ ~ch vujg~ vuokhnxuhujnjkxlox{lz {javlh' J~ kill{ A[!NO[ Jg~ 59C @xgk~jog >6C ~o {hgn ~chah{{imh Chllo ]ouln) ~o ~ch pjnho {kuhhg, ign kill{ Jg~ 59C @xgk~jog >KC~o ~huajgi~h ~ch vuomuia'

    ^ch HGN {~i~hahg~ jg ljgh 89 ~hll{ ~ch i{{haelhu ~ci~ j~ ci{ uhikchn ~chhgn o` ~ch {oxukh `jlh ign il{o {vhkj`jh{ ~ch hg~uz vojg~ `ou ~ch vuomuia'J` ~ch hg~uz vojg~ j{ go~ i liehl loki~hn i~ o``{h~ 6966C, ~ch 'HSH `jlhuh{xl~jgm `uoa ~ch i{{haelz ign ljgbimh o` ~cj{ {oxukh vuomuia kiggo~ ehkogphu~hn jg~o i 'KOA `jlh'

    Jg~uonxk~jog ~o 'HSH Vuomuia{

    ]h ciph dx{~ nj{kx{{hn i vuomuia ~ci~ }i{ }uj~~hg jg {xkc i }iz ~ci~ j~koxln eh i{{haelhn jg~o i 'KOA `jlh' [xkc i vuomuia j{ {javlh jg{~uxk~xuh, {o i vuomuiaahu }co ghhn{ ~o vx~ ~omh~chu ~cj{ bjgn o` yxjkbx~jlj~z kig kogkhg~ui~h og ~ch vuomuia lomjk ign no i ajgjaxa iaoxg~ o`}ouuzjgm ieox~ kog~uol o` ~ch i{{haelhu' Co}hphu, 'KOA!~zvh vuomuia{ ciph{oah nh`jgj~h nj{inpig~imh{, ign {o ao{~ {hujox{ i{{haelz!ligmximh h``ou~{`ou A[!NO[ iuh }uj~~hg ~o eh kogphu~hn jg~o 'HSH `jlh{'

    Il~coxmc 'KOA vuomuia{ iuh h``hk~jphlz uh{~ujk~hn ~o i ~o~il {jth o` 0> BE`ou aikcjgh konh, ni~i, ign {~ikb koaejghn, 'HSH vuomuia{ kig ehvuik~jkillz xgljaj~hn jg {jth #xv ~o ~ch ljaj~ o` ~ch koavx~hu-{ ipijlielhahaouz*' 'HSH vuomuia{ il{o vlikh ~ch konh, ni~i, ign {~ikb jg {hviui~hviu~{ o` ~ch `jlh' Il~coxmc ~ch gouail A[!NO[ vuomuia loinhu noh{ go~ ~ibhinpig~imh o` ~cj{ `hi~xuh o` 'HSH `jlh{, ~ch iejlj~z ~o loin nj``huhg~viu~{ o` liumh vuomuia{ jg~o {hphuil {hviui~h ahaouz `uimahg~{, i{ }hll i{

    ~ch ovvou~xgj~z ~o nh{jmgi~h i %vxuh% konh vou~jog o` zoxu vuomuia ~ci~kig eh {ciuhn ez {hphuil ~i{b{, j{ phuz {jmgj`jkig~ jg axl~j~i{bjgm

    Vimh 56

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    21/521

    inpno{!Nxgkig'~s~hgpjuogahg~{ {xkc i{ Ajkuo{o`~ ]jgno}{'

    ^ch A[!NO[ loinhu il}iz{ eujgm{ i 'HSH vuomuia jg~o ahaouz jaahnji~hlzieoph ~ch vuomuia {hmahg~ vuh`js, il~coxmc ~ch ounhu o` ~ch konh, ni~i,ign {~ikb {hmahg~{ aiz piuz #@jmxuh ;!>*' ^ch 'HSH `jlh ci{ i chinhu, ouelokb o` kog~uol jg`ouai~jog, }j~c i kciuik~huj{~jk `ouai~ #@jmxuh{ ;!8

    ign ;!0*' ^ch {jth o` ~cj{ chinhu piujh{ ikkounjgm ~o ~ch gxaehu o`vuomuia jg{~uxk~jog{ ~ci~ ghhn ~o eh uhloki~hn i~ loin ~jah, ex~ j~ j{il}iz{ i axl~jvlh o` 895 ez~h{'

    Eh`ouh A[!NO[ ~uig{`hu{ kog~uol ~o ~ch vuomuia, ~ch jgj~jil pilxh{ o` ~chkonh {hmahg~ #K[* uhmj{~hu ign jg{~uxk~jog vojg~hu #JV* uhmj{~hu iuhkilkxli~hn `uoa ~ch hg~uz!vojg~ jg`ouai~jog jg ~ch 'HSH `jlh chinhu ign~ch vuomuia-{ loin innuh{{' ^cj{ jg`ouai~jog nhujph{ `uoa ig HGN {~i~hahg~jg ~ch {oxukh konh `ou ogh o` ~ch vuomuia-{ aonxlh{' ^ch ni~i {hmahg~ #N[*ign hs~ui {hmahg~ #H[* uhmj{~hu{ iuh ainh ~o vojg~ ~o ~ch V[V {o ~ci~ ~chvuomuia kig ikkh{{ ~ch hgpjuogahg~!elokb vojg~hu, koaaign ~ijl, ign o~chux{h`xl jg`ouai~jog kog~ijghn ~chuh'

    [[4[V

    [~ikb {hmahg~4 {~ikb muo}{ no}g}iun `uoa ~ov o` {hmahg~

    [[46666C Ni~i {hmahg~ Vuomuia konh

    K[46666C Vuomuia {hmahg~ vuh`js

    N[46666C H[46666C

    @jmxuh ;!>' I ahaouz jaimh o` i ~zvjkil 'HSH!~zvh vuomuia jaahnji~hlzi`~hu loinjgm' ^ch kog~hg~{ o` ~ch 'HSH `jlh iuh uhloki~hn ign euoxmc~

    jg~o ahaouz ieoph ~ch vuomuia {hmahg~ vuh`js' Konh, ni~i, ign {~ikb uh{jnhjg {hviui~h {hmahg~{ ign ghhn go~ eh jg ~ch ounhu {co}g chuh' ^ch hg~uzvojg~ kig eh igz}chuh jg ~ch konh {hmahg~ ign j{ {vhkj`jhn ez ~ch HGN{~i~hahg~ jg ~ch aijg aonxlh o` ~ch vuomuia' ]chg ~ch vuomuia uhkhjph{kog~uol, ~ch N[ #ni~i {hmahg~* ign H[ #hs~ui {hmahg~* uhmj{~hu{ vojg~ ~o~ch vuomuia {hmahg~ vuh`js2 ~ch vuomuia x{xillz {iph{ ~cj{ pilxh ign ~chguh{h~{ ~ch N[ ign H[ uhmj{~hu{ ~o vojg~ ~o j~{ ni~i iuhi'

    ^ch jgj~jil kog~hg~{ o` ~ch {~ikb {hmahg~ #[[* ign {~ikb vojg~hu #[V*uhmj{~hu{ koah `uoa ~ch chinhu' ^cj{ jg`ouai~jog nhujph{ `uoa ~chnhkliui~jog o` i {hmahg~ }j~c ~ch i~~ujex~h [^IKB {oah}chuh jg ~chvuomuia-{ {oxukh konh' ^ch ahaouz {vikh illoki~hn `ou ~ch {~ikb aiz ehjgj~jiljthn ou xgjgj~jiljthn, nhvhgnjgm og ~ch {~ikb!{hmahg~ nh`jgj~jog2aigz vuomuiaahu{ ljbh ~o jgj~jiljth ~ch {~ikb ahaouz }j~c i uhkomgjtielhni~i vi~~hug {o ~ci~ ~chz kig jg{vhk~ ahaouz nxav{ ign nh~huajgh co} axkc

    {~ikb {vikh j{ ik~xillz x{hn ez ~ch vuomuia'

    ]chg i 'HSH vuomuia `jgj{ch{ vuokh{{jgm, j~ {coxln uh~xug kog~uol ~oA[!NO[ ~cuoxmc Jg~ 59C @xgk~jog >KC' O~chu ah~con{ iuh ipijlielh, ex~~chz o``hu go inpig~imh{ ign iuh kog{jnhuielz lh{{ kogphgjhg~ #ehkix{h~chz x{xillz uhyxjuh ~ch K[ uhmj{~hu ~o vojg~ ~o ~ch V[V*'

    Ez~ho``{h~6666C

    @ju{~ o` 'HSH `jlh {jmgi~xuh #>NC* 6669C

    [hkogn viu~ o` 'HSH `jlh {jmgi~xuh #8IC* 6665C

    Lhgm~c o` `jlh AON 895

    666>C [jth o` `jlh jg 895!ez~h vimh{, jgklxnjgm chinhu

    Vimh 59

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    22/521

    inpno{!Nxgkig'~s~6660C

    Gxaehu o` uhloki~jog!~ielh j~ha{ 6663C

    [jth o` chinhu jg viuimuivc{ #90!ez~h xgj~{* 666IC

    Ajgjaxa gxaehu o` viuimuivc{ ghhnhn ieoph vuomuia

    666KC Aisjaxa gxaehu o` viuimuivc{ nh{juhn ieoph vuomuia 666HC

    [hmahg~ nj{vlikhahg~ o` {~ikb aonxlh 6696C

    Kog~hg~{ o` [V uhmj{~hu i~ hg~uz 6695C

    ]oun kchkb{xa 669>C

    Kog~hg~{ o` JV uhmj{~hu i~ hg~uz 6690C

    [hmahg~ nj{vlikhahg~ o` konh aonxlh 6693C

    O``{h~ o` `ju{~ uhloki~jog j~ha jg `jlh 669IC

    Ophuliz gxaehu #6 `ou uh{jnhg~ viu~ o` vuomuia* 669EC Piujielh uh{huphn {vikh Uhloki~jog ~ielh Piujielh uh{huphn {vikh Vuomuia ign ni~i {hmahg~{ [~ikb {hmahg~

    @jmxuh ;!8' ^ch `ouai~ o` i 'HSH loin aonxlh'

    ^ch jgvx~ ~o ~ch ljgbhu `ou i 'HSH!~zvh vuomuia kig eh aigz {hviui~hoedhk~ aonxlh{' Hikc aonxlh kig x{h i xgjyxh konh!{hmahg~ giah, ign ~chvuokhnxuh{ kig kiuuz hj~chu ~ch GHIU ou ~ch @IU i~~ujex~h, nhvhgnjgm oggiajgm kogphg~jog{ ign ~ch {jth o` ~ch hshkx~ielh konh' ^ch vuomuiaahuax{~ ~ibh kiuh ~ci~ ~ch aonxlh{ ljgbhn ~omh~chu kog~ijg oglz ogh {hmahg~}j~c ~ch [^IKB i~~ujex~h ign oglz ogh hg~uz vojg~ nh`jghn }j~c ig HGNi{{haelhu njuhk~jph' ^ch ox~vx~ `uoa ~ch ljgbhu j{ i `jlh }j~c i 'HSHhs~hg{jog' ^cj{ `jlh kig eh hshkx~hn jaahnji~hlz'

    K7NXAV CHLLO'HSH

    6 9 5 ; > 8 0 = 3 : I E K N H @6666 >N 8I 53 66 65 66 69 66 56 66 6: 66 @@ @@ 6; 66 AT#''''' '''''''6696 36 66 56 68 66 66 66 66 9H 66 66 66 69 66 69 66 '' '''''''''''''6656 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 ''''''''''''''''

    66;6 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 ''''''''''''''''66>6 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 ''''''''''''''''6686 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 ''''''''''''''''

    '''

    6566 E3 69 66 3H N3 E> >6 EE 69 66 E: 96 66 :6 EI 63 ''''''F'''''''''6596 66 KN 59 E3 66 >K KN 59 6N 6I >3 08 0K 0K 0@ 56 '')''L')''Chllo6556 8= 0@ =5 0K 0> 59 6N 6I ]ouln)''

    @jmxuh ;!0' I chs nxav o` ~ch CHLLO'HSH vuomuia, nhaog{~ui~jgm ~chkog~hg~{ o` i {javlh 'HSH loin aonxlh' Go~h ~ch `ollo}jgm jg~huh{~jgmpilxh{4 ~ch 'HSH {jmgi~xuh jg ez~h{ 6666C ign 6669C, ~ch gxaehu o`uhloki~jog!~ielh j~ha{ jg ez~h{ 6660C ign 666=C, ~ch ajgjaxa hs~ui ahaouz

    illoki~jog #AJG_ILLOK* jg ez~h{ 666IC ign 666EC, ~ch aisjaxa hs~ui ahaouzilloki~jog #AIS_ILLOK* jg ez~h{ 666KC ign 666NC, ign ~ch jgj~jil JV

    Vimh 55

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    23/521

    inpno{!Nxgkig'~s~#jg{~uxk~jog vojg~hu* uhmj{~hu pilxh jg ez~h{ 669>C ign 6698C' [hh il{o@jmxuh ;!8'

    Ig Hsiavlh 'HSH Vuomuia

    ^ch CHLLO'HSH vuomuia jg @jmxuh ;!= nhaog{~ui~h{ ~ch `xgniahg~il

    {~uxk~xuh o` ig i{{haelz!ligmximh vuomuia ~ci~ j{ nh{~jghn ~o ehkoah i'HSH `jlh' I~ ajgjaxa, j~ {coxln ciph i aonxlh giah, i konh {hmahg~, i{~ikb {hmahg~, ign i vujaiuz vuokhnxuh ~ci~ uhkhjph{ kog~uol o` ~chkoavx~hu `uoa A[!NO[ i`~hu ~ch vuomuia j{ loinhn' ^ch CHLLO'HSH vuomuiail{o kog~ijg{ i ni~i {hmahg~ ~o vuopjnh i aouh koavlh~h hsiavlh'

    ^ch GIAH, ^J^LH, ign VIMH njuhk~jph{ }huh kophuhn jg ~ch CHLLO'KOA hsiavlhvuomuia ign iuh x{hn jg ~ch {iah aigghu chuh, {o }h-ll aoph ~o ~ch `ju{~gh} j~ha o` jg~huh{~' I`~hu i `h} koaahg~{ ign HYX {~i~hahg~{, }h koah ~oi nhkliui~jog o` i konh {hmahg~ ~ci~ ehmjg{ og ljgh 59 }j~c i [HMAHG^koaaign ign hgn{ og ljgh >9 }j~c ig HGN[ koaaign' I{ jg ~ch CHLLO'KOAhsiavlh vuomuia, ~ch liehl jg ~ch lh`~ao{~ `jhln o` ~ch ljgh mjph{ ~chkonh {hmahg~ ~ch giah _^HS^' ^ch ovhuign `jhln{ i~ ~ch ujmc~ hgn o` ~chljgh mjph ~ch i~~ujex~h{ ]OUN, VXELJK, ign fKONH-'

    @ollo}jgm ~ch konh!{hmahg~ jg{~uxk~jog, }h `jgn ig I[[XAH {~i~hahg~ ogljgh 5;' Go~jkh ~ci~, xgljbh ~ch hyxjpilhg~ {~i~hahg~ jg ~ch CHLLO'KOAvuomuia, ~ch I[[XAH {~i~hahg~ jg ~cj{ vuomuia {vhkj`jh{ {hphuil nj``huhg~{hmahg~ giah{' Imijg, uhahaehu ~ci~ ~cj{ {~i~hahg~ ci{ go njuhk~ h``hk~ og~ch kog~hg~{ o` ~ch {hmahg~ uhmj{~hu{ ex~ i``hk~{ oglz ~ch ovhui~jog o`~ch i{{haelhu j~{hl`'

    94 giah chllo54 vimh 88,9;5;4 ~j~lh CHLLO'HSH!!vujg~ Chllo og ~huajgil>4 284 2 CHLLO'HSH4 nhaog{~ui~h{ piujox{ koavoghg~{04 2 o` i `xgk~jogil 'HSH!~zvh i{{haelz!=4 2 ligmximh vuomuia, x{h o` {hmahg~{,

    34 2 ign ig A[!NO[ `xgk~jog kill':4 2964 2 Uiz Nxgkig, Aiz 9:33994 29549;4 {~njg hyx 6 2 {~igniun jgvx~ cignlh9>4 {~nox~ hyx 9 2 {~igniun ox~vx~ cignlh984 {~nhuu hyx 5 2 {~igniun huuou cignlh9049=4 ku hyx 6nc 2 I[KJJ kiuujimh uh~xug934 l` hyx 6ic 2 I[KJJ ljgh`hhn9:4564594 _^HS^ {hmahg~ }oun vxeljk -KONH-554

    5;4 i{{xah k{4_^HS^,n{4_NI^I,{{4[^IKB5>4584 vujg~ vuok `iu 2 hg~uz vojg~ `uoa A[!NO[5045=4 aop is,_NI^I 2 aibh oxu ni~i {hmahg~534 aop n{,is 2 innuh{{ielh'''5:4;64 aop ic,>6c 2 `xgk~jog >6c 1 }uj~h;94 aop es,{~nox~ 2 {~igniun ox~vx~ cignlh;54 aop ks,a{m_lhg 2 lhgm~c o` ah{{imh;;4 aop ns,o``{h~ a{m 2 innuh{{ o` ah{{imh;>4 jg~ 59c 2 ~uig{`hu ~o A[!NO[;84;04 aop is,>k66c 2 hsj~, uh~xug konh 1 6;=4 jg~ 59c 2 ~uig{`hu ~o A[!NO[

    ;34;:4 vujg~ hgnv

    Vimh 5;

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    24/521

    inpno{!Nxgkig'~s~>64>94 _^HS^ hgn{>54>;4>>4 _NI^I {hmahg~ }oun vxeljk -NI^I->84

    >04 a{m ne ku,l` 2 ah{{imh ~o nj{vliz>=4 ne -Chllo ]ouln)-,ku,l`>34>:4 a{m_lhg hyx .!a{m 2 lhgm~c o` ah{{imh864894 _NI^I hgn{8548;48>4 [^IKB {hmahg~ viui {~ikb f[^IKB-884804 ne 953 nxv #?*8=4834 [^IKB hgn{8:4064 hgn vujg~ 2 nh`jgh{ hg~uz vojg~

    @jmxuh ;!=' ^ch CHLLO'HSH vuomuia lj{~jgm'

    ]j~cjg ~ch konh {hmahg~, ~ch aijg vujg~ vuokhnxuh j{ nhkliuhn ez ~ch VUOKkoaaign og ljgh 58 ign klo{hn }j~c HGNV og ljgh ;:' Ehkix{h ~ch vuokhnxuhuh{jnh{ jg i 'HSH `jlh, }h ciph mjphg j~ ~ch @IU i~~ujex~h i{ ig hsiavlh,ex~ ~ch i~~ujex~h j{ uhillz juuhlhpig~ ehkix{h ~ch vuomuia j{ {o {aill ign~ch vuokhnxuh j{ go~ killhn ez igz~cjgm hl{h jg ~ch {iah vuomuia'

    ^ch vujg~ vuokhnxuh `ju{~ jgj~jiljth{ ~ch N[ uhmj{~hu, i{ jgnjki~hn jg ~chhiuljhu I[[XAH {~i~hahg~, loinjgm j~ }j~c i pilxh ~ci~ kix{h{ j~ ~o vojg~~o ~ch ei{h o` ~ch ni~i iuhi' #A[!NO[ ix~oai~jkillz {h~{ xv ~ch K[ ign [[uhmj{~hu{'* Ghs~, ~ch vuokhnxuh x{h{ A[!NO[ Jg~ 59C @xgk~jog >6C ~onj{vliz ~ch ah{{imh Chllo ]ouln) og ~ch {kuhhg, dx{~ i{ jg ~ch CHLLO'KOA

    vuomuia' @jgillz, ~ch vuokhnxuh hsj~{ eikb ~o A[!NO[ }j~c ig Jg~ 59C@xgk~jog >KC og ljgh{ ;0 ign ;=, vi{{jgm i uh~xug konh o` thuo #}cjkc ezkogphg~jog ahig{ i {xkkh{{*'

    Ljgh{ >> ~cuoxmc 89 nhkliuh i ni~i {hmahg~ giahn _NI^I, }cjkc kog~ijg{ ~chpiujielh{ ign kog{~ig~{ ~ch vuomuia }jll x{h' J` ~ch piujox{ aonxlh{ o` ivuomuia kog~ijg axl~jvlh ni~i {hmahg~{ }j~c ~ch {iah giah, ~ch ljgbhu }jllkollhk~ ~cha ign vlikh ~cha jg ~ch {iah vcz{jkil ahaouz {hmahg~'

    Ljgh{ 8> ~cuoxmc 83 h{~ielj{c i {~ikb {hmahg~2 VX[C ign VOV jg{~uxk~jog{}jll ikkh{{ ~cj{ iuhi o` {kui~kc ahaouz' Eh`ouh A[!NO[ ~uig{`hu{ kog~uol~o i 'HSH vuomuia, j~ {h~{ xv ~ch [[ ign [V uhmj{~hu{ ikkounjgm ~o ~chnhkliuhn {jth ign loki~jog o` ~ch {~ikb {hmahg~' Eh {xuh ~o illo} hgoxmcuooa `ou ~ch aisjaxa {~ikb nhv~c ~ci~ kig okkxu i~ uxg~jah, vlx{ i {i`hgxaehu o` hs~ui }oun{ `ou uhmj{~hu{ vx{chn og~o ~ch {~ikb nxujgm ig A[!NO[

    {hupjkh kill' J` ~ch {~ikb ophu`lo}{, j~ aiz niaimh zoxu o~chu konh ignni~i {hmahg~{ ign kix{h zoxu vuomuia ~o ehciph {~uigmhlz ou hphg ~o kui{cil~omh~chu)

    ^ch HGN {~i~hahg~ og ljgh 06 }jgn{ xv oxu eujh` CHLLO'HSH vuomuia, ~hlljgm~ch i{{haelhu ~ci~ j~ ci{ uhikchn ~ch hgn o` ~ch {oxukh `jlh ign vuopjnjgm~ch liehl o` ~ch vuomuia-{ vojg~ o` hg~uz `uoa A[!NO['

    ^ch nj``huhgkh{ eh~}hhg 'KOA ign 'HSH vuomuia{ iuh {xaaiujthn jg @jmxuh;!3'

    'KOA vuomuia 'HSH vuomuiaAisjaxa {jth 08,8;0 ez~h{ ajgx{ 580 Go ljaj~

    ez~h{ `ou V[V ign 5 ez~h{`ou {~ikb

    Vimh 5>

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    25/521

    inpno{!Nxgkig'~s~

    Hg~uz vojg~ V[V46966C Nh`jghn ez HGN {~i~hahg~

    IL i~ hg~uz 66C j` nh`ixl~ @KE +9 ci{ [iahpiljn nujph, 6@@C j`jgpiljn nujph

    IC i~ hg~uz 66C j` nh`ixl~ @KE +5 ci{ [iahpiljn nujph, 6@@C j`jgpiljn nujph

    K[ i~ hg~uz V[V [hmahg~ kog~ijgjgm aonxlh}j~c hg~uz vojg~

    JV i~ hg~uz 6966C O``{h~ o` hg~uz vojg~ }j~cjgj~{ {hmahg~

    N[ i~ hg~uz V[V V[V

    H[ i~ hg~uz V[V V[V

    [[ i~ hg~uz V[V [hmahg~ }j~c [^IKB i~~ujex~h[V i~ hg~uz 6@@@HC ou ~ov }oun jg [jth o` {hmahg~ nh`jghn }j~c

    ipijlielh ahaouz, [^IKB i~~ujex~h}cjkchphu j{ lo}hu

    [~ikb i~ hg~uz Thuo }oun Jgj~jiljthn ou xgjgj~jiljthn

    [~ikb {jth 08,8;0 ez~h{ ajgx{ 580 Nh`jghn jg {hmahg~ }j~cez~h{ `ou V[V ign {jth o` [^IKB i~~ujex~hhshkx~ielh konh ign ni~i

    [xeuox~jgh kill{ X{xillz GHIU GHIU ou @IU

    Hsj~ ah~con Jg~ 59C @xgk~jog >KC Jg~ 59C @xgk~jog >KC

    vuh`huuhn, GHIU UH^ j` vuh`huuhnA[!NO[ phu{jog 9

    [jth o` `jlh Hsik~ {jth o` vuomuia [jth o` vuomuia vlx{ chinhu#axl~jvlh o` 895 ez~h{*

    @jmxuh ;!3' [xaaiuz o` ~ch nj``huhgkh{ eh~}hhg 'KOA ign 'HSH vuomuia{,jgklxnjgm ~chju hg~uz kognj~jog{'

    Aouh Ieox~ I{{haelz!Ligmximh Vuomuia{

    Go} ~ci~ }h-ph loobhn i~ }oubjgm hsiavlh{ o` 'KOA ign 'HSH

    i{{haelz!ligmximh vuomuia{, lh~-{ eikb~uikb ign nj{kx{{ ~chju hlhahg~{ ilj~~lh aouh `ouaillz' ^ch `ollo}jgm nj{kx{{jog j{ ei{hn og ~ch Ajkuo{o`~Aikuo I{{haelhu, chuhi`~hu uh`huuhn ~o i{ AI[A' J` zox iuh `iajljiu }j~cAI[A ign iuh ig hsvhujhgkhn i{{haelz!ligmximh vuomuiaahu, zox aiz }ig~ ~o{bjv ~cj{ {hk~jog'

    AI[A vuomuia{ kig eh ~coxmc~ o` i{ cipjgm ~cuhh {~uxk~xuil lhphl{4

    ^ch aonxlh lhphl

    ^ch {hmahg~ lhphl

    ^ch vuokhnxuh lhphl

    Aonxlh{ iuh {javlz kcxgb{ o` {oxukh konh ~ci~ kig eh jgnhvhgnhg~lz

    aijg~ijghn ign i{{haelhn' [hmahg~{ iuh vcz{jkil muoxvjgm{ o` ljbh j~ha{#aikcjgh konh ou ni~i* }j~cjg i vuomuia ign i kouuh{vognjgm {hmuhmi~jog o`

    Vimh 58

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    26/521

    inpno{!Nxgkig'~s~nj{{jajliu j~ha{' Vuokhnxuh{ iuh `xgk~jogil {xenjpj{jog{ o` ig hshkx~ielhvuomuiauox~jgh{ ~ci~ kiuuz ox~ i viu~jkxliu ~i{b'

    Vuomuia Aonxlh{

    Xgnhu A[!NO[, ~ch aonxlh!lhphl {~uxk~xuh kog{j{~{ o` `jlh{ kog~ijgjgm ~ch

    {oxukh konh `ou jgnjpjnxil uox~jgh{' Hikc {oxukh `jlh j{ ~uig{li~hn ez ~chi{{haelhu jg~o i uhloki~ielh oedhk~ aonxlh' Ig oedhk~ aonxlh kig uh{jnhilogh jg ig jgnjpjnxil `jlh ou }j~c aigz o~chu oedhk~ aonxlh{ jg igoedhk~!aonxlh ljeuiuz o` `uhyxhg~lz x{hn ou uhli~hn uox~jgh{' ^chAjkuo{o`~ Oedhk~ Ljgbhu #LJGB* koaejgh{ oedhk~!aonxlh `jlh{, o`~hg }j~cinnj~jogil oedhk~ aonxlh{ hs~uik~hn `uoa ljeuiujh{, jg~o ig hshkx~ielhvuomuia `jlh'

    X{jgm aonxlh{ ign oedhk~!aonxlh ljeuiujh{ uhnxkh{ ~ch {jth o` zoxuivvljki~jog {oxukh `jlh{ #ign pi{~lz jgkuhi{h{ zoxu vuonxk~jpj~z*, ehkix{h~ch{h `jlh{ ghhn go~ kog~ijg ~ch {oxukh konh `ou uox~jgh{ ~chz ciph jgkoaaog }j~c o~chu vuomuia{' ^cj{ ~hkcgjyxh il{o illo}{ zox ~o aijg~ijg ~chuox~jgh{ aouh hi{jlz, ehkix{h zox ghhn ~o il~hu oglz ogh kovz o` ~chju{oxukh konh {~ouhn jg ogh vlikh, jg{~hin o` aigz kovjh{ {~ouhn jgnj``huhg~ ivvljki~jog{' ]chg zox javuoph #ou `js* ogh o` ~ch{h uox~jgh{,

    zox kig {javlz uhi{{haelh j~, vx~ j~{ oedhk~ aonxlh eikb jg~o ~ch ljeuiuz,uhljgb ill o` ~ch vuomuia{ ~ci~ x{h ~ch uox~jgh, ign pojlmi4 jg{~ig~xvmuinh'

    Vuomuia [hmahg~{

    ^ch ~hua {hmahg~{ uh`hu{ ~o ~}o nj{kuh~h vuomuiaajgm kogkhv~{4 vcz{jkil{hmahg~{ ign lomjkil {hmahg~{'

    Vcz{jkil {hmahg~{ iuh 0> BE elokb{ o` ahaouz' ^ch Jg~hl 3630/3633 ign36530 ajkuovuokh{{ou{ ciph `oxu {hmahg~ uhmj{~hu{, }cjkc iuh h{{hg~jillzx{hn i{ vojg~hu{ ~o ~ch{h elokb{' #^ch 36;30 ci{ {js {hmahg~ uhmj{~hu{,}cjkc iuh i {xvhu{h~ o` ~co{h `oxgn og ~ch 3630/3633 ign 36530'* Hikc{hmahg~ uhmj{~hu kig vojg~ ~o ~ch eo~~oa o` i nj``huhg~ 0> BE iuhi o`ahaouz' ^cx{, i vuomuia kig innuh{{ igz loki~jog jg ahaouz ez ivvuovuji~h

    aigjvxli~jog o` ~ch {hmahg~ uhmj{~hu{, ex~ ~ch aisjaxa iaoxg~ o` ahaouz~ci~ j~ kig innuh{{ {jaxl~ighox{lz j{ 580 BE'

    I{ }h nj{kx{{hn hiuljhu jg ~ch kciv~hu, 'KOA vuomuia{ i{{xah ~ci~ ill `oxu{hmahg~ uhmj{~hu{ il}iz{ vojg~ ~o ~ch {iah vlikh~ch eo~~oa o` ~chvuomuia' ^cx{, ~chz iuh ljaj~hn ~o i aisjaxa {jth o` 0> BE' 'HSH vuomuia{,og ~ch o~chu cign, kig innuh{{ aigz nj``huhg~ vcz{jkil {hmahg~{ ign kiguh{h~ ~ch {hmahg~ uhmj{~hu{ ~o vojg~ ~o hikc {hmahg~ i{ j~ j{ ghhnhn'Kog{hyxhg~lz, ~ch oglz vuik~jkil ljaj~ og ~ch {jth o` i 'HSH vuomuia j{~ch iaoxg~ o` ipijlielh ahaouz' ^ch hsiavlh vuomuia{ ~cuoxmcox~ ~chuhaijgnhu o` ~cj{ eoob `okx{ og 'HSH vuomuia{'

    Lomjkil {hmahg~{ iuh ~ch vuomuia koavoghg~{' I ajgjaxa o` ~cuhh lomjkil{hmahg~{ ax{~ eh nhkliuhn jg igz 'HSH vuomuia4 i konh {hmahg~, i ni~i{hmahg~, ign i {~ikb {hmahg~' Vuomuia{ }j~c aouh ~cig 0> BE o` konh ou

    ni~i ciph aouh ~cig ogh konh ou ni~i {hmahg~' ^ch uox~jgh{ ou ni~i ~ci~iuh x{hn ao{~ `uhyxhg~lz iuh vx~ jg~o ~ch vujaiuz konh ign ni~i {hmahg~{`ou {vhhn, ign uox~jgh{ ou ni~i ~ci~ iuh x{hn lh{{ `uhyxhg~lz iuh vx~ jg~o{hkogniuz konh ign ni~i {hmahg~{'

    [hmahg~{ iuh nhkliuhn }j~c ~ch [HMAHG^ ign HGN[ njuhk~jph{ jg ~ch`ollo}jgm `oua4

    giah [HMAHG^ i~~ujex~h{'''giah HGN[

    ^ch i~~ujex~h{ o` i {hmahg~ jgklxnh j~{ iljmg ~zvh #EZ^H, ]OUN, ou VIUI*,

    koaejgh ~zvh #VXELJK, VUJPI^H, KOAAOG, ou [^IKB*, ign kli{{ ~zvh' ^ch{hmahg~ i~~ujex~h{ iuh x{hn ez ~ch ljgbhu }chg j~ j{ koaejgjgm lomjkil

    Vimh 50

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    27/521

    inpno{!Nxgkig'~s~{hmahg~{ ~o kuhi~h ~ch vcz{jkil {hmahg~{ o` ig hshkx~ielh vuomuia' Ao{~ o`~ch ~jah, zox kig mh~ ez dx{~ `jgh x{jgm i {aill {hlhk~jog o` i~~ujex~h{jg i ui~chu {~huho~zvjkil }iz' Co}hphu, j` zox }ig~ ~o x{h ~ch `xll uigmho` i~~ujex~h{, zox ajmc~ }ig~ ~o uhin ~ch nh~ijlhn hsvligi~jog jg ~ch AI[Aaigxil'

    Vuomuia{ iuh kli{{j`jhn jg~o ogh ahaouz aonhl ou igo~chu ei{hn og ~chgxaehu o` ~chju konh ign ni~i {hmahg~{' ^ch ao{~ koaaoglz x{hn ahaouzaonhl `ou i{{haelz!ligmximh vuomuia{ j{ ~ch {aill aonhl, }cjkc ci{ oghkonh ign ogh ni~i {hmahg~, ex~ zox kig il{o x{h ~ch ahnjxa, koavik~, ignliumh aonhl{ #@jmxuh ;!:*' #^}o innj~jogil aonhl{ hsj{~ }j~c }cjkc }h}jll go~ eh kogkhugjgm oxu{hlph{ `xu~chu4 ~ch ~jgz aonhl, }cjkc kog{j{~{o` jg~huajshn konh ign ni~i jg i {jgmlh {hmahg~ `ou hsiavlh, i 'KOA `jlhxgnhu A[!NO[2 ign ~ch cxmh aonhl, }cjkc j{ {xvvou~hn ez ~ch Ajkuo{o`~ KOv~jajtjgm Koavjlhu ign }cjkc illo}{ x{h o` ni~i {~uxk~xuh{ liumhu ~cig 0>BE'*

    Aonhl Konh {hmahg~{ Ni~i {hmahg~{[aill Ogh OghAhnjxa Axl~jvlh Ogh

    Koavik~ Ogh Axl~jvlhLiumh Axl~jvlh Axl~jvlh

    @jmxuh ;!:' Ahaouz aonhl{ koaaoglz x{hn jg i{{haelz!ligmximh ign Kvuomuia{'

    @ou hikc ahaouz aonhl, Ajkuo{o`~ ci{ h{~ielj{chn khu~ijg {hmahg~ ign kli{{giah{ ~ci~ iuh x{hn ez ill j~{ cjmc!lhphl!ligmximh koavjlhu{ #@jmxuh;!96*' Ehkix{h {hmahg~ giah{ iuh iuej~uiuz, zox aiz i{ }hll inov~ ~chAjkuo{o`~ kogphg~jog{' ^chju x{h }jll aibh j~ hi{jhu `ou zox ~o jg~hmui~hzoxu i{{haelz!ligmximh uox~jgh{ jg~o vuomuia{ }uj~~hg jg ligmximh{ {xkc i{K, ou ~o x{h uox~jgh{ `uoa cjmc!lhphl!ligmximh ljeuiujh{ jg zoxui{{haelz!ligmximh vuomuia{'

    Igo~chu javou~ig~ Ajkuo{o`~ cjmc!lhphl!ligmximh kogphg~jog j{ ~o x{h ~chMUOXV njuhk~jph ~o giah ~ch ghiu ni~i {hmahg~ #~ch {hmahg~ ~ch vuomuiahsvhk~{ ~o innuh{{ }j~c o``{h~{ `uoa ~ch N[ uhmj{~hu* ign ~ch {~ikb{hmahg~ i{ ahaehu{ o` NMUOXV #~ch ix~oai~jk ni~i muoxv*, i {vhkjil giahuhkomgjthn ez ~ch ljgbhu ign il{o ez ~ch vuomuia loinhu{ jg Ajkuo{o`~]jgno}{ ign Ajkuo{o`~ O[/5' ^ch MUOXV njuhk~jph kix{h{ lomjkil {hmahg~{}j~c nj``huhg~ giah{ ~o eh koaejghn jg~o i {jgmlh vcz{jkil {hmahg~ {o ~ci~~chz kig eh innuh{{hn x{jgm ~ch {iah {hmahg~ ei{h innuh{{' Jg K vuomuia{,NMUOXV il{o kog~ijg{ ~ch lokil chiv, }cjkc j{ x{hn ez ~ch K uxg~jahljeuiuz `ou nzgiajk illoki~jog o` {aill iaoxg~{ o` ahaouz'

    Ahaouz [hmahg~ Iljmg Koaejgh Kli{{ Muoxvaonhl giah ~zvh ~zvh ~zvh

    [aill _^HS^ ]OUN VXELJK KONH_NI^I ]OUN VXELJK NI^I NMUOXV[^IKB VIUI [^IKB [^IKB NMUOXV

    Ahnjxa aonxlh_^HS^ ]OUN VXELJK KONH' ]OUN VXELJK NI^I NMUOXV''_NI^I[^IKB VIUI [^IKB [^IKB NMUOXV

    Koavik~ _^HS^ ]OUN VXELJK KONHni~i VIUI VUJPI^H @IU_NI^I' ]OUN VXELJK NI^I NMUOXV'

    '_NI^I

    Vimh 5=

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    28/521

    inpno{!Nxgkig'~s~[^IKB VIUI [^IKB [^IKB NMUOXV

    Liumh aonxlh_^HS^ ]OUN VXELJK KONH'''

    ni~i VIUI VUJPI^H @IU_NI^I'''_NI^I ]OUN VXELJK NI^I NMUOXV[^IKB VIUI [^IKB [^IKB NMUOXV

    @jmxuh ;!96' [hmahg~{, muoxv{, ign kli{{h{ `ou ~ch {~igniun ahaouz aonhl{i{ x{hn }j~c i{{haelz!ligmximh vuomuia{' ^ch Ajkuo{o`~ K Ov~jajtjgmKoavjlhu ign o~chu cjmc!lhphl!ligmximh koavjlhu{ x{h i {xvhu{h~ o` ~ch{h{hmahg~{ ign kli{{h{'

    @ou vxuh i{{haelz!ligmximh vuomuia{ ~ci~ }jll uxg xgnhu A[!NO[, zox kig

    jmgouh NMUOXV' Co}hphu, j` zox vlig ~o jg~hmui~h i{{haelz!ligmximhuox~jgh{ ign vuomuia{ }uj~~hg jg cjmc!lhphl ligmximh{, zox-ll }ig~ ~o`ollo} ~ch Ajkuo{o`~ NMUOXV kogphg~jog' @ou hsiavlh, j` zox iuh vliggjgm~o ljgb uox~jgh{ `uoa i K ljeuiuz jg~o ig i{{haelz!ligmximh vuomuia, zox{coxln jgklxnh ~ch ljgh

    NMUOXV muoxv _NI^I,[^IKB

    ghiu ~ch ehmjggjgm o` ~ch vuomuia'

    ^ch `jgil Ajkuo{o`~ kogphg~jog o` jg~huh{~ jg kuhi~jgm 'HSH vuomuia{ j{{hmahg~ ounhu' ^ch cjmc!lhphl koavjlhu{ i{{xah ~ci~ konh {hmahg~{ il}iz{koah `ju{~, `ollo}hn ez `iu ni~i {hmahg~{, `ollo}hn ez ~ch ghiu ni~i{hmahg~, }j~c ~ch {~ikb ign chiv li{~' ^cj{ ounhu }og-~ kogkhug zox axkcxg~jl zox ehmjg jg~hmui~jgm i{{haelz!ligmximh konh }j~c uox~jgh{ `uoa

    cjmc!lhphl!ligmximh ljeuiujh{, ex~ j~ j{ hi{jh{~ ~o lhiug ~o x{h ~chkogphg~jog ujmc~ `uoa ~ch {~iu~'

    Vuomuia Vuokhnxuh{

    ^ch vuokhnxuh lhphl o` vuomuia {~uxk~xuh j{ viu~lz uhil ign viu~lzkogkhv~xil' Vuokhnxuh{ iuh ei{jkillz dx{~ i `igkz mxj{h `ou {xeuox~jgh{'

    Vuokhnxuh{ }j~cjg i vuomuia iuh nhkliuhn }j~c ~ch VUOK ign HGNV njuhk~jph{jg ~ch `ollo}jgm `oua4

    giah VUOK i~~ujex~h'''

    UH^giah HGNV

    ^ch i~~ujex~h kiuujhn ez i VUOK nhkliui~jog, }cjkc j{ hj~chu GHIU ou @IU,~hll{ ~ch i{{haelhu }ci~ ~zvh o` kill zox hsvhk~ ~o x{h ~o hg~hu ~chvuokhnxuh~ci~ j{, }ch~chu ~ch vuokhnxuh }jll eh killhn `uoa o~chuuox~jgh{ jg ~ch {iah {hmahg~ ou `uoa uox~jgh{ jg o~chu {hmahg~{' ]chg ~chi{{haelhu hgkoxg~hu{ i UH^ jg{~uxk~jog }j~cjg ~ch vuokhnxuh, j~ x{h{ ~chi~~ujex~h jg`ouai~jog ~o mhghui~h ~ch kouuhk~ ovkonh `ou hj~chu i ghiu#jg~ui!{hmahg~* ou `iu #jg~hu!{hmahg~* uh~xug'

    Hikc vuomuia {coxln ciph i aijg vuokhnxuh ~ci~ uhkhjph{ kog~uol `uoaA[!NO[' Zox {vhkj`z ~ch hg~uz vojg~ `ou ~ch vuomuia ez jgklxnjgm ~ch giaho` ~ch aijg vuokhnxuh jg ~ch HGN {~i~hahg~ jg ogh o` ~ch vuomuia-{ {oxukh`jlh{' ^ch aijg vuokhnxuh-{ i~~ujex~h #GHIU ou @IU* j{ uhillz go~ ~oo

    javou~ig~, ehkix{h ~ch vuomuia uh~xug{ kog~uol ~o A[!NO[ }j~c i `xgk~jogkill ui~chu ~cig i UH^ jg{~uxk~jog' Co}hphu, ez kogphg~jog, ao{~

    Vimh 53

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    29/521

    inpno{!Nxgkig'~s~vuomuiaahu{ i{{jmg ~ch aijg vuokhnxuh ~ch @IU i~~ujex~h igz}iz'

    Zox {coxln euhib ~ch uhaijgnhu o` ~ch vuomuia jg~o vuokhnxuh{ jg igounhulz }iz, }j~c hikc vuokhnxuh vhu`ouajgm i }hll!nh`jghn {jgmlh`xgk~jog, uh~xugjgm j~{ uh{xl~{ ~o j~{ killhu, ign ipojnjgm ik~jog{ ~ci~ciph mloeil h``hk~{ }j~cjg ~ch vuomuia' Jnhillz vuokhnxuh{ jgpobh hikc

    o~chu oglz ez KILL jg{~uxk~jog{, ciph oglz ogh hg~uz vojg~ ign ogh hsj~vojg~, ign il}iz{ hsj~ ez ahig{ o` i UH^ jg{~uxk~jog, ghphu ez dxavjgm ~o{oah o~chu loki~jog }j~cjg ~ch vuomuia'

    @ou hi{h o` xgnhu{~ignjgm ign aijg~hgigkh, i vuokhnxuh {coxln go~ hskhhnogh vimh #ieox~ 06 ljgh{*2 j` j~ j{ logmhu ~cig i vimh, j~ j{ vuoeielz ~ookoavlhs ign zox {coxln nhlhmi~h {oah o` j~{ `xgk~jog ~o ogh ou aouh{xe{jnjiuz vuokhnxuh{' Zox {coxln vuh`ikh ~ch {oxukh konh `ou hikcvuokhnxuh }j~c i nh~ijlhn koaahg~ ~ci~ {~i~h{ ~ch vuokhnxuh-{ killjgm{hyxhgkh, uh{xl~{ uh~xughn, uhmj{~hu{ i``hk~hn, ign igz ni~i j~ha{ikkh{{hn ou aonj`jhn' ^ch h``ou~ jgph{~hn jg aibjgm zoxu vuokhnxuh{koavik~, klhig, `lhsjelh, ign }hll!nokxahg~hn }jll eh uhvijn aigz ~jah{ophu }chg zox uhx{h ~ch vuokhnxuh{ jg o~chu vuomuia{'

    Kciv~hu > A[!NO[ Vuomuiaajgm ^ool{

    Vuhviujgm i gh} vuomuia ~o uxg xgnhu A[!NO[ j{ ig j~hui~jph vuokh{{ }j~c`oxu ei{jk {~hv{4

    X{h o` i ~hs~ hnj~ou ~o kuhi~h ou aonj`z ig I[KJJ {oxukh!konh `jlh

    X{h o` ig i{{haelhu ou cjmc!lhphl!ligmximh koavjlhu #{xkc i{ ~chAjkuo{o`~ Aikuo I{{haelhu ou ~ch Ajkuo{o`~ K Ov~jajtjgm Koavjlhu* ~o~uig{li~h ~ch {oxukh `jlh jg~o uhloki~ielh oedhk~ konh

    X{h o` i ljgbhu ~o ~uig{`oua ~ch uhloki~ielh oedhk~ konh jg~o ighshkx~ielh A[!NO[ loin aonxlh

    X{h o` i nhexmmhu ~o ah~conjkillz ~h{~ ign nhexm ~ch vuomuia

    Innj~jogil x~jlj~jh{ ~ch A[!NO[ {o`~}iuh nhphlovhu aiz `jgn ghkh{{iuz ouchlv`xl jgklxnh ~ch `ollo}jgm4

    LJE, }cjkc kuhi~h{ ign aijg~ijg{ oedhk~!aonxlh ljeuiujh{

    KUH@, }cjkc mhghui~h{ i kuo{{!uh`huhgkh lj{~jgm

    HSH5EJG, }cjkc kogphu~{ 'HSH `jlh{ ~o 'KOA `jlh{

    AIBH, }cjkc koaviuh{ ni~h{ o` `jlh{ ign kiuujh{ ox~ ovhui~jog{ ei{hn og~ch uh{xl~ o` ~ch koaviuj{og

    ^cj{ kciv~hu mjph{ ig ovhui~jogil ophupjh} o` ~ch Ajkuo{o`~ vuomuiaajgm~ool{ `ou A[!NO[, jgklxnjgm ~ch i{{haelhu, ~ch K koavjlhu, ~ch ljgbhu, ign~ch ljeuiujig' Jg mhghuil, ~ch jg`ouai~jog vuopjnhn chuh il{o ivvljh{ ~o~ch JEA vuomuiaajgm ~ool{ `ou A[!NO[, }cjkc iuh uhillz ~ch Ajkuo{o`~vuonxk~{ }j~c ajgou piuji~jog{ ign nj``huhg~ phu{jog gxaehu{' Hphg j` zoxuvuh`huuhn vuomuiaajgm ligmximh j{ go~ K ou i{{haelz ligmximh, zox }jllghhn i~ lhi{~ i vi{{jgm `iajljiuj~z }j~c ~ch{h ~ool{ ehkix{h ill o` ~chhsiavlh{ jg ~ch JEA ign Ajkuo{o`~ NO[ uh`huhgkh aigxil{ iuh }uj~~hg jg ogho` ~ch{h ligmximh{'

    ^ch {xuphz jg ~cj{ kciv~hu, ~omh~chu }j~c ~ch hsiavlh vuomuia{ ignuh`huhgkh {hk~jog hl{h}chuh jg ~ch eoob, {coxln vuopjnh ~ch hsvhujhgkhnvuomuiaahu }j~c {x``jkjhg~ jg`ouai~jog ~o jaahnji~hlz ehmjg }uj~jgm x{h`xlvuomuia{' Uhinhu{ }co no go~ ciph i eikbmuoxgn jg K, i{{haelz ligmximh, ou~ch Jg~hl 36s30 ajkuovuokh{{ou iukcj~hk~xuh {coxln uh`hu ~o ~ch ~x~oujil

    ign uh`huhgkh }oub{ lj{~hn i~ ~ch hgn o` ~cj{ kciv~hu'

    Vimh 5:

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    30/521

    inpno{!Nxgkig'~s~

    @jlh ^zvh{

    ^ch A[!NO[ vuomuiaajgm ~ool{ kig kuhi~h ign vuokh{{ aigz nj``huhg~ `jlh~zvh{' ^ch `ollo}jgm hs~hg{jog{ iuh x{hn ez kogphg~jog `ou ~ch{h `jlh{4

    Hs~hg{jog @jlh ~zvh'I[A I{{haelz!ligmximh {oxukh `jlh

    'K K {oxukh `jlh

    'KOA A[!NO[ hshkx~ielh loin aonxlh ~ci~ noh{ go~ uhyxjuh uhloki~jogi~ uxg~jah

    'KU@ Kuo{{!uh`huhgkh jg`ouai~jog `jlh vuonxkhn ez ~ch i{{haelhu `ouvuokh{{jgm ez KUH@'HSH

    'NH@ Aonxlh!nh`jgj~jog `jlh nh{kujejgm i vuomuia-{ {hmahg~ ehcipjou#A[ O[/5 ign Ajkuo{o`~ ]jgno}{ vuomuia{ oglz2 go~ uhlhpig~ ~o

    gouail A[!NO[ ivvljki~jog{*'HSH A[!NO[ hshkx~ielh loin aonxlh ~ci~ uhyxjuh{ uhloki~jog i~

    uxg~jah

    'C K chinhu `jlh kog~ijgjgm K {oxukh konh `ou kog{~ig~{, aikuo{,ign `xgk~jog{2 ahumhn jg~o igo~chu K vuomuia }j~c ~ch +jgklxnhnjuhk~jph

    'JGK Jgklxnh `jlh `ou i{{haelz!ligmximh vuomuia{, ~zvjkillzkog~ijgjgm aikuo{ ign/ou hyxi~h{ `ou {z{~ha}jnh pilxh{ {xkc i{huuou konh{

    'LJE Oedhk~!aonxlh ljeuiuz `jlh ainh xv o` ogh ou aouh 'OED `jlh{2jgnhshn ign aigjvxli~hn ez LJE'HSH

    'L[^ Vuomuia lj{~jgm, vuonxkhn ez ~ch i{{haelhu, ~ci~ jgklxnh{ahaouz loki~jog{, aikcjgh konh, ~ch oujmjgil vuomuia ~hs~, ignhuuou ah{{imh{

    'AIV Lj{~jgm o` {zaeol{ ign ~chju loki~jog{ }j~cjg i loin aonxlh2vuonxkhn ez ~ch ljgbhu

    'OED Uhloki~ielh!oedhk~!konh `jlh vuonxkhn ez ig i{{haelhu oukoavjlhu

    'UH@ Kuo{{!uh`huhgkh lj{~jgm vuonxkhn ez KUH@'HSH `uoa ~chjg`ouai~jog jg i 'KU@ `jlh

    ^ch Ajkuo{o`~ Aikuo I{{haelhu

    ^ch Ajkuo{o`~ Aikuo I{{haelhu #AI[A* j{ nj{~ujex~hn i{ ~ch `jlh AI[A'HSH']chg ehmjggjgm i vuomuia ~uig{li~jog, AI[A ghhn{ ~ch `ollo}jgmjg`ouai~jog4

    ^ch giah o` ~ch `jlh kog~ijgjgm ~ch {oxukh vuomuia

    ^ch `jlhgiah `ou ~ch oedhk~ vuomuia ~o eh kuhi~hn

    ^ch nh{~jgi~jog o` ~ch vuomuia lj{~jgm

    ^ch `jlhgiah `ou ~ch jg`ouai~jog ~ci~ j{ li~hu vuokh{{hn ez ~ch

    kuo{{!uh`huhgkh x~jlj~z #KUH@'HSH*

    Vimh ;6

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    31/521

    inpno{!Nxgkig'~s~Zox kig jgpobh AI[A jg ~}o }iz{' J` zox hg~hu ~ch giah o` ~ch i{{haelhuilogh, j~ vuoav~{ zox `ou ~ch giah{ o` hikc o` ~ch piujox{ jgvx~ ignox~vx~ `jlh{' ^ch i{{haelhu {xvvljh{ uhi{ogielh nh`ixl~{ `ou ill ~chuh{vog{h{ hskhv~ ~ch {oxukh `jlhgiah, i{ {co}g jg ~ch `ollo}jgm hsiavlh4

    K7AI[A !9 lj{~{ ~ch {}j~kch{ ikkhv~hnez AI[A phu{jog 8'9' I{ {co}g jg ~ch `ollo}jgm hsiavlh, zox kig vx~`uhyxhg~lz x{hn ov~jog{ jg i AI[A hgpjuogahg~ piujielh, }chuh ~chz }jll eh

    `oxgn ix~oai~jkillz ez ~ch i{{haelhu4

    K7[H^ AI[A1/^ /Tj

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    32/521

    inpno{!Nxgkig'~s~/N Vuonxkh lj{~jgm og eo~c vi{{h{ #~o `jgn vci{h huuou{*'/N{zaeol Nh`jgh {zaeol i{ i gxll ~hs~ {~ujgm #{zaeol kig eh uh`huhgkhn

    ez kognj~jogil i{{haelz njuhk~jph{ jg `jlh*'/H I{{haelh `ou 36s3= gxahujk kovuokh{{ou haxli~ou x{jgm JHHH

    uhil!gxaehu `ouai~'/Jvi~c [h~ {hiukc vi~c `ou jgklxnh `jlh{'

    /L @oukh kuhi~jog o` i vuomuia!lj{~jgm `jlh'/LI @oukh lj{~jgm o` ill mhghui~hn konh'/AL Vuh{huph ki{h {hg{j~jpj~z jg ill giah{ #xvvhuki{h giah{

    nj{~jgk~ `uoa ~chju lo}huki{h hyxjpilhg~{*'/AS Vuh{huph lo}huki{h jg hs~hugil giah{ oglz #giah{ nh`jghn }j~c

    VXELJK ou HS^UG njuhk~jph{*'/AX Kogphu~ ill lo}huki{h giah{ ~o xvvhuki{h'/G [xvvuh{{ mhghui~jog o` ~ielh{ o` aikuo{, {~uxk~xuh{, uhkoun{,

    {hmahg~{, muoxv{, ign {zaeol{ i~ ~ch hgn o` ~ch lj{~jgm'/V Kchkb `ou javxuh konh jg 36530/36;30 vuo~hk~hn aonh'/[ Iuuigmh {hmahg~{ jg ounhu o` okkxuuhgkh #nh`ixl~*'/^ %^hu{h% aonh2 {xvvuh{{ ill ah{{imh{ xglh{{ huuou{ iuh

    hgkoxg~huhn nxujgm ~ch i{{haelz'/P %Phueo{h% aonh2 uhvou~ gxaehu o` ljgh{ ign {zaeol{ i~ hgn o`

    i{{haelz'

    /]g [h~ huuou nj{vliz #}iugjgm* lhphl2 g165'/S @oukh lj{~jgm o` `il{h kognj~jogil{'/T Nj{vliz {oxukh ljgh{ kog~ijgjgm huuou{ og ~ch {kuhhg'/Tn Jgklxnh ljgh!gxaehu jg`ouai~jog jg 'OED `jlh'/Tj Jgklxnh ljgh!gxaehu ign {zaeol jg`ouai~jog jg 'OED `jlh'

    @jmxuh >!9' Ajkuo{o`~ Aikuo I{{haelhu phu{jog 8'9 {}j~kch{'

    AI[A illo}{ zox ~o ophuujnh ~ch nh`ixl~ hs~hg{jog{ og igz `jlhi `hi~xuh~ci~ kig eh ui~chu nigmhuox{' @ou hsiavlh, j` jg ~ch vuhkhnjgm hsiavlh zoxcin uh{vognhn ~o ~ch Oedhk~ `jlhgiah vuoav~ }j~c CHLLO'I[A, ~ch i{{haelhu}oxln ciph ikkhv~hn ~ch hg~uz }j~cox~ koaahg~ ign nh{~uozhn zoxu {oxukh`jlh' ^cj{ j{ go~ ~oo ljbhlz ~o civvhg jg ~ch jg~huik~jph koaaign aonh,

    ex~ zox ax{~ eh phuz kiuh`xl }j~c `jlh hs~hg{jog{ }chg AI[A j{ x{hn jg iei~kc `jlh'

    ^ch Ajkuo{o`~ K Ov~jajtjgm Koavjlhu

    ^ch Ajkuo{o`~ K Ov~jajtjgm Koavjlhu kog{j{~{ o` ~cuhh hshkx~ielh `jlh{K9'HSH, K5'HSH, ign K;'HSH~ci~ javlhahg~ ~ch K vuhvuokh{{ou, ligmximh~uig{li~ou, konh mhghui~ou, ign konh ov~jajthu' Ig innj~jogil kog~uolvuomuia, KL'HSH, hshkx~h{ ~ch ~cuhh koavjlhu `jlh{ jg ounhu, vi{{jgm hikc~ch ghkh{{iuz jg`ouai~jog ieox~ `jlhgiah{ ign koavjli~jog ov~jog{'

    Eh`ouh x{jgm ~ch K koavjlhu ign ~ch ljgbhu, zox ghhn ~o {h~ xv `oxuhgpjuogahg~ piujielh{4

    Piujielh Ik~jogVI^C1vi~c [vhkj`jh{ ~ch loki~jog o` ~ch ~cuhh hshkx~ielh K

    koavjlhu `jlh{ #K9, K5, ign K;* j` ~chz iuh go~jg ~ch kxuuhg~ njuhk~ouz2 x{hn ez KL'HSH'

    JGKLXNH1vi~c [vhkj`jh{ ~ch loki~jog o` +jgklxnh `jlh{ #nh`ixl~hs~hg{jog 'C* ~ci~ iuh go~ `oxgn jg ~ch kxuuhg~njuhk~ouz'

    LJE1vi~c [vhkj`jh{ ~ch loki~jog#{* `ou oedhk~!konhljeuiujh{ ~ci~ iuh go~ `oxgn jg ~ch kxuuhg~njuhk~ouz'

    ^AV1vi~c [vhkj`jh{ ~ch loki~jog `ou ~havouiuz }oubjgm

    `jlh{ kuhi~hn ez ~ch K koavjlhu ign ljgbhu'

    Vimh ;5

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    33/521

    inpno{!Nxgkig'~s~

    KL'HSH noh{ go~ {xvvou~ ig jg~huik~jph aonh ou uh{vog{h `jlh{' Zox il}iz{jgpobh j~ }j~c i koaaign ljgh o` ~ch `ollo}jgm `oua4

    KL Rov~jog{Q `jlh R`jlh '''Q

    Zox aiz lj{~ igz gxaehu o` `jlh{j` i `jlh ci{ i 'K hs~hg{jog, j~ }jll ehkoavjlhn jg~o i uhloki~ielh!oedhk~!aonxlh #'OED* `jlh' Ounjgiujlz, j` ~chkoavjlhu hgkoxg~hu{ go huuou{, j~ ix~oai~jkillz vi{{h{ ill uh{xl~jgm 'OED`jlh{ ign igz innj~jogil 'OED `jlh{ {vhkj`jhn jg ~ch koaaign ljgh ~o ~chljgbhu, ilogm }j~c ~ch giah{ o` ~ch ivvuovuji~h uxg~jah ljeuiujh{'

    ^ch K koavjlhu ci{ aigz ov~jogil {}j~kch{ kog~uolljgm j~{ ahaouz aonhl{,ox~vx~ `jlh{, konh mhghui~jog, ign konh ov~jajti~jog' ^ch{h iuh {xaaiujthnjg @jmxuh >!5' ^ch K koavjlhu-{ iukigh {}j~kc {zg~is j{ nhujphn liumhlz`uoa XGJS/SHGJS, {o nog-~ hsvhk~ j~ ~o aibh igz {hg{h'

    [}j~kc Ahigjgm/Is [hlhk~ ahaouz aonhl4

    K 1 koavik~ aonhlC 1 cxmh aonhlL 1 liumh aonhlA 1 ahnjxa aonhl[ 1 {aill aonhl #nh`ixl~*

    /k Koavjlh oglz2 no go~ jgpobh ljgbhu'/K No go~ {~ujv koaahg~{'/N

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    34/521

    inpno{!Nxgkig'~s~kill{s 1 hgielh aisjaxa ov~jajti~jog #hyxjpilhg~ ~o/Oijl~ /M{*

    /V [hgn vuhvuokh{{ou ox~vx~ ~o `jlh'/[s [hlhk~ {oxukh!lj{~jgm kog~uol4

    l

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    35/521

    inpno{!Nxgkig'~s~

    ^ch jgvx~ `jlh `ou ~cj{ hsiavlh }i{ CHLLO'OED2 ~ch ox~vx~ `jlh{ }huhCHLLO'HSH #~ch hshkx~ielh vuomuia* ign CHLLO'AIV #~ch loin aiv vuonxkhn ez~ch ljgbhu i`~hu ill uh`huhgkh{ ign innuh{{h{ }huh uh{olphn*' @jmxuh >!;{co}{ ~ch loin aiv'

    [~iu~ [~ov Lhgm~c Giah Kli{{66666C 6669=C 66693C _^HS^ KONH66693C 6665=C 66696C _NI^I NI^I666;6C 666I@C 66636C [^IKB [^IKB666E6C 666EEC 6666KC ..^ZVH[ NHE^ZV666K6C 666N0C 6669=C ..[ZAEOL[ NHE[ZA

    Innuh{{ Vxeljk{ ez Giah

    Innuh{{ Vxeljk{ ez Pilxh

    Vuomuia hg~uz vojg~ i~ 666646666

    @jmxuh >!;' Aiv vuonxkhn ez ~ch Ajkuo{o`~ Oedhk~ Ljgbhu #LJGB* nxujgm ~chmhghui~jog o` ~ch CHLLO'HSH vuomuia `uoa Kciv~hu ;' ^ch vuomuia kog~ijg{ogh KONH, ogh NI^I, ign ogh [^IKB {hmahg~' ^ch `ju{~ jg{~uxk~jog ~o ehhshkx~hn ljh{ jg ~ch `ju{~ ez~h o` ~ch KONH {hmahg~' ^ch ..^ZVH[ ign..[ZAEOL[ {hmahg~{ kog~ijg jg`ouai~jog `ou ~ch KonhPjh} nhexmmhu ign iuhgo~ viu~ o` ~ch vuomuia2 ~ch{h {hmahg~{ iuh jmgouhn ez ~ch gouail A[!NO[loinhu'

    Zox kig oe~ijg ~ch {iah uh{xl~ aouh yxjkblz ez hg~hujgm ill viuiah~hu{ jg~ch koaaign ljgh, jg ~ch `ollo}jgm `oua4

    LJGB ov~jog{ oedhk~`jlh, Rhsh`jlhQ, Raiv`jlhQ, Rljeuiujh{Q

    ^cx{, ~ch koaaign!ljgh hyxjpilhg~ ~o ~ch vuhkhnjgm jg~huik~jph {h{{jog j{

    K7LJGB CHLLO,CHLLO,CHLLO,,

  • 7/31/2019 Advanced MS-DOS Programming - Ray G. Duncan

    36/521

    inpno{!Nxgkig'~s~

    Ez x{jgm ~ch " ovhui~ou ou {vikh kciuik~hu{ jg ~ch ljeuiujh{ `jhln