KJS JOURNAL PAPER 2, Development of Rename Directory Command in MS-DOS
KJS JOURNAL PAPER 2, Development of Rename Directory Command in MS-DOS
CI]MM AND
DIRECTORY *
IN M S_DOS
OF RENAME
D E V E L OP MENT
K. J. Sateo
Assistaut Profes6or
DePt. of ConPuter Sc' aDd 8D99"
B. il. college of Eogg.r
- Iavatnal
PUSAD - {45 215' Dist'
Mabarasbtra (INDIA)
Abstract
pilectlyreDaaiugadirectorygaa6lauotPoEsiblsitr}ts-Dos.TboMs-Dos
ploced.u,re to renane a directory whicb ie very
ra.ndal gives tbe followiog t h e D a nual
f o r r e n a c i r ' g & d i ' r e c t ' o r y a E P e r
uuch error prona. Tb€ procedure
is as under...
PreseotediDaDlDteroationalConfereoce,AUSE'sDs'93'Bangalore'INDIA'
34
2.O Introduction:
tbe boot sector is tbe oth sector on the disk and con-
rb6 Boot area l.e.
talns two tbings,naoely,tbe boot paraneters and tbe disk bootstrap PrograE.
- Unused cluster
- Reserved cluater
- Bad cluster
- Last cluster in the file
- Next cl.uster number ln the file
35
Tberois o o e e n t r y i n t b a F A l f o r e a c h c l u s t e r i o t h e d a t a a r e a . | f t hc leu s t e r '
or defective
value in a FAT €Dtr| aoesn't nark an uoused' reserved and tbe
tbeo tbe cluster .iit""pooding to tbe FAr entry is a part of a file'
value io the FAT.ilry i""fd indicate tbe next cluster in tb€ file.
::::::i::::-----::::------:::::-----::::-:t::-----------------
Fileuaoe I Bytss ASCII 41 49 52 30 30 30 30 31 DIR00001
. DAT
Extension f alter AscII {{ {1 5{
10 16
Attribute I iYt" Bit coded
Unused AII zeros All blaakr
Ressrved for lO Bytes
future use 12:36a
Tioe 2 BYte3 Encoded 98 O{
E3 1A 07-03-93
Date Z iYt.s Encoded
60 Ol 352
Starting clu- 2 Bytes Integer
ster nuobar All blankr
Size { BYteB LoDg INT All zcrog
T h e a t t r i b u t e o f a f i l e c e n b e . . . r e a d o n l y ( 1 ) o r b i d d e n ( 2 ) o r s y s t e o f i l e of
;; directoryl16; oi arcbive(321 or a conbiuatiou
(4) or volune ID(8)
o u f y l U i a i " u r s y s t e o f i l e . A - s ubdirectory can elro
tbese a.g. IO.Sxs is i-reaa hidden -or
l.e. s lubdirectory c a o b e r e a d ouly or
bavo such ! rttribute entry alro
o r ! c o m b i n a t i o n o f t b e s e . F o r a subdirectory
ayrten or lrcbivs
one cluster is allocated.
the file or
Iu tbe attribute byte each bit represeote either tbe type of
sub diractory nanc entry' Tbc
wbetber tbc eotry ie a voluoe label eutry or a
neaning of cacb bit is al thown belor" '
Read onIY
Eidden
Systeo
Volune label
Sub directory
Arcbive bit
Uaused
UDused
36
ahs rtartlng cluster n 'nlrer indicates tbe pl,ace wbere tha flle beginr on the
dlck data space. !e3 v6|'ae label entry the startiug clu-t€r o,,.f,"" rr o.
For tbe directory entry wbicb ir a sub directory aod contalnr rnotber files,
the root dLrectory eatry cootaing a starting cluster no. of another ret of
directory entries which reeide in tbe disk data 6pace e.g. tf DrRl ig r
subdirectory in the root directory whicb coutains DIR2 aa a rubdirectory
along with tbe other filee, and DIR2 cootaios DIR3 ae a rubdirectory aloug
wl'tb tbe otber files, aud DIR3 contains a set of filer tbea tbe root direc-
tory entry will contaia only one entry for DrRl which wl.Il glvc the addrear
of DrRl on tbe disk data space nbere all it,c fileg will be located; in DrRl
tbare rill be on. entry for DrR2 whlcb will glve thc eddrotr of Dlni oo tbe
dirk data rpace; DrR2 will contain ooc entrl for DrR3 wbich lrill givc thc
addrcrr of DrR3 on tha dl-rk data apac6, and on tbl,t eddrcrr all th. filot of
DIR3 will be located.
All flles' data and subdirectories are stored iu this area. It occupiee tbe
laet and tbe largest part of each disk.
we caD coopile tbe progran. giveo berewitb, ia tha turbo percal 5.0 anviron-
nent aod genarato aD €xecutabl,e filc, call,ed RETDIR.EIE. I:hir prograr cao ba
executed froa the l{s-Dos proupt ia two }rat8. ru tha fir:t rray Ho ca[ giv€
Just the naoe of tbe prograo vi.z. A>R!$DrR<enter>. ro tbc reioud rr!1, irc ceo
b a v c A > R E N D T Ro l d _ d i r e c t o r y new_directory<eDter>. tt RETDIR.ETEexirt: iu
tha root directory and wg are fn sooe otber path tben we can invoke tbe
prograD by \RENDIR<eater>e.g. A3\Kt\K2\K3>\RENDtR<eutcr>.
lhe user ie supposed to give the old directory oaoe. tbe progra. theu askc..
E i l r E R N E W D I R E c t o R y N A U E D R : \ P A a E \ D I R N A " L E ( t { A r . G 5c E A R s } o R . . \ . . \ . . \ . . FoRtl
OR ..\..\..\..\DIRECIORI N A U E F O R I . T . D E F A U L TP A T B O r r B E S O U R C ED I R E C T O R YI S
AI,LOWED.USE lEE SAl.lEDRIVE...
rf the paraoeters are given then tbe paraDeter! arc aasigned to tbe old
directory ''ea€ aud the new directory DaEe. Botb tbe dirlctory na'ei !16
first converted iuto tbe capital letters. fha first routina exeluted ir tba
PAls-cEEcK. Tbie routine cbecks whether both the previoue paths(prior to the
glven dlrectoriea) ar€ aane or trot. }le oeed oot give tbe path uaie explicit-
ly in both tbe dirdctory naoes. l{e cao give the latb nare-only ln one of tbc
directory tra'es, tha progra' cau take the other path lraoo fro' tbia. Tbig
tt
routioe rlto cosvcrtr botb tbc dlrectori BaEet ioto tbc 8 + 3 fornat l'c' 8
cbrrlcterr priDrry D!E! rDd 3 cbsractcrr tecondary oane. If we want to
renlo€ the curreot dLrectort then we cau give just . for tbe old directory
DaECO.9.
Ar\Kl\K2\K3>\REIIDIR X{ R5. Tbe rensol.og will be doao and se will have tbe
rruc proopt. Tbs drive lett€r cao bd given or it can bE ooitted e.9. 116 catr
u3!. , .
rr\xl\f,2\r3>\RErDrR ttf,l Xx or A'\K1\X2\f,3>\RENDIR \Ki RF c',r
r: \xl\[2\R3>\REHDIR l!Kl ArKK or Ar \xr\R2\K3>\REHDTR \Rl A3Kx or
A:\Rr\x2\R3>\REHDTR \Kl \K2 etc.
l{. crn reolEs .nt otber dlractorl out of tbls patb alro, but r ProP€r Prth
bar to bc Aivcn el leart lo ooc of thc directorl DaEe!. If tbc patba of tha
old direclory neoo lud tbe uew directory naoe don't Eatcb theo tbe' Progran
givea tba D.3r!96. . .
tb! prth na6er ere tba rioc then thc Progr.D rxecutes tho routioe
tf
rdd. the drlvc naoe A! or 8: or C: or Dt or E! to tbe
ADD DRTVE NAl.fE sblcb
o t 1 U a d l r e c t o r y n r E e i f t L ir not sPecified. lfter tblr tba
lrtfi
routirc 1 r e x e c u t c d . T b l r r o u t i n e i r r c q u l r e d b e c a u l c lrc
CEECK CUR DtR
e dlrcctory rbco wr !ra currootly ln tbe raos dlrectory' lf ra
caonoE r.iaae
directory tbeo we bave to 9o to it'r previoul
1rs6t to r3oaDa tbe curient
t
directory in tbe raoe p l t h . T h i r r o u t l n e d o e r t b l s t a g k '
!re €x€-
-l
a a d t h e D I R _ N A J . I E - C E E C Kr o u t i D e s
After tbit tbc l{ILD CEECK routine
cuted for tbe old -i;""l"ty
routiue
naoe aod tha nerl direct6ry
cbcct<r srbetbar tbl wtld Cardr r eod ? are prareot
t b e d
oaoe. Tbe
i r e c t
in tbe
o r y
WILD-CEECK
directory
DaEe. ll€ cad
ii
oaoeB. t t a l s o c b e c k r r b e t b e r b l a o k l s P r e E e D t l n
cenoot bc i
cr€lto r dlrsctory baviog a blaok ln !t'. Drre a.E. DIR 01, but lt
by tbc X3-OOS'! CD or CEDTR coonaod, lo blank lr Dot lllowed io the
rcce3red
iaae. It l n y o f t b c d i r e c t o r y l a 6 s t c o u t l i ! ( i n 8 + 3 ) t b e s e char-
directory
ecterg i.c. I or ? or blaok tbea tbc progra! 91v3. tbc acrrage...
TIILD CARDS ? & r A}ID BLATKS ARE NOT AI.LOWED IN A DIRECIORY NAME.. 'COHI{AI{D
ABORTED... and tbe Prograo ends.
prograo cndr' If
DIRECToR! NAYE CANNoT BE NITLL...COMuA.}|DABORTED... aod tbc
tbe directory DaE€ is one of tbe l.ls-Dos reserved file naoee then the Prograo
giver tbe EeEsagG.. .
r I J N A - I ' { E ,D
' oEs Nor Exrsl o R } l o r A D r R E c r o R Y . . . c o M l ' t A } I DA B O R T E D . . . , a g d t t r e p r o -
gran ends.
After thig tbe DIR cEEcK 2 routine is executed wbicb cbeckr whather the Derr
directory nane ie f direEtory itseJ.f. rf so then the prograr givee the nea-
sage.. .
After thir the PrograE axecutes the routiae sA.l-{EHAJ.iEsbl,ch chGck! whatber
iirs rliri riirecto-t nans ard tbe seer di.=ectory laoE era diffarent or uot. If
they are oot dlfferent then the prograE gl.yar tbe ncreage...
After tbis tbe Progra& executes tbe routiDs FILE cEEcK. Thir routlae cbecks
wbetber tbe new directory nane existr on tba disE ar a fila. If Lt cxirtr ar
a file naoe olr tbe disk, io the particular patb, tben the progran gLver thc
following EesEage aod asks tbe following questioo...
rf tbe u6er responds witb Y/y tber tba progral daletcr thc fil.s frol tbe
disk 5o that a directory could be reaaucd as that naoe, othcrsiro tbs pro-
gral givee the nes:age...
rf the old directory Da&e ig tbe curreut diractory naoe thea tbe
cEEcK_cuR_DrR routine 6 e t s t h e v a l u e o f t b e v a r i a b l e o D _ E Q _ c Da s T R U E . r f
OD-EQ-CD is FAISE tbea tbe routine HIIBIN PATE is erecuted. tbir routl.ae
chCcki wbetber tba old directory nane is iicluded io tbe curreDt directory
Dane. If it is so then tbis routine sets tbe value of tbe variabLe INpATg to
b€ TRUE. fhie is required to cbange the pronpt correctly.
After thie the Progran converts the old directory aanc eod tbe nap directory
nsDe into tbe ASCIIZ string, a n d l n v o k e g t b e M S - D O Sf u n c t i o a requert 568
wbicb does tbe reuaning. ff tbe operation is successful then tbe progr8ll
gives tbe Desaage.. .
' D I R E C I O R Y . . . ' , I N I { A M E , , . . . R E N A f i E DA S D I R E C T O R Y . . . , , O U : I N A N E
and th6 prograq
ends after giviag a correct prorupt. If the operation ir not ruccergful tben
tbe prograo gives tbe uessaga...
' D r R E c r o R Y N o r R E I I A I . { E D . . . c E E cAKc c E s s
RrcETs...'and the progran ends.
{.O Acknowledqements r
RE}{DIR'
PROGRBI,T
{PROCRAI{ FOR REI{A.MS DTRECTORT BY PROF.
K . a t . s A T A o , B , N . C O L L E G EO F E N G C . ' )
- 445 215, D I s f . : I A V A T I { A L ' I.IAEARASETRA ( Ir.IDIA) }
{PUSAD
USES DOS;
CONST
D=DIRECTORY }
{ R=READ OT{LT, B=B I DDEN , S=STSTEII , A=ARCBIVE , = zLi
= 23;REJ$ = sl;NtrD = l9;RSAD = 53'RSD
RISAD = 5siRf,SD
=tl9;RD =l?iBsAD =5{;EsD =22,EAD =5OitrD = lgi
RAD
= 5 2 i s D = 2 0 ; A D = 1 1 8 ; D =LGi
sAD
CARRI_EIAO = li
F I L E S E ! r A R R A I t l . . 1 3 l o f S a R I N c [ 6 ] = ( ' A U I ' r ' C o N ' , ' L S l " ' l f u',LPT3
l , " ' P R ] f',"
' coM1 ', COtt2 ; , ', COM3 ', CONo 'LPTl ', . 'r'PTz CLOCKS ', ) i
VAR " " " " "
Fl!F2 : FILE;
AITR : WORD,
CE ! CEAR;
REG S REGISTERS;
I,DR_No ! IITEGER,
Pl,P2 ! PATESTR,
D1,D2 ! DlRSTRi
N1,N2 t NAMESTR, .!
EL,Ez : ElTsIRi
S,sl,S2 t STRING;
Kl ! STRING[2] i
rOUilD'OD-EQ-CD,IIIPATB ! BOOLEAI{;
INNAI.|E, Ot1ttlnl,tE, tNA.l't3,ONAUE s STRII|C [72 | ;
PROCEDURE DRI''E-XO(DIRNAI.IE : SIRING) i
BECIN
s l ! = , , i 3 2 . a " i
s1 8= coPY(DIRNAIIE, 1, l)i
52 := coPI(DIRtlA'l{E, 2, lri
,:, T8Eil
IF 52 =
BEGIH
If ( ( S 1= ' 8 ' ) OR(Sl = 'A') T H E N D R _ H OI = I;
IF ((Sf = 'b') OR(Sl = 'B') IEEN DR-NO := 2i
((Sf ='c'l OR(31 = 'c') rEEil DR NO t= 3i
If
((Sl ='d') oR (Sl = 'D') TEEN DR-No := {i
IF
((sl = 'e') OR (S1 = 'E') IEEN DR_No != 5;
Ir
E}TD
ELSE
DR lto := 0;
E}ID;
PROCEDT'REPATE-CEECK;
SAME OR NOT)
{ROUTINE IO CEECK WEETEERTEE PA1E NAT'{ESARE
L A B E L1 , 2 , 3 r 4 , 5 , 6 i
VAR
L,N : I}f,IEGER;
BECIN
DRM_NO(INNAilE);
L != LENCIB(INNAI.IE),
oETDTR(DR_XO,S) ;
'.'))
IF ((L = l) AND (MNAltE[1] = TEEN
BEGIN
INNAI,TE T = S;
GoTo 5i
END;
I := li Kl := "; H := o;
'.'
IF INNAf.TE[ll = IBEH GofO I
ELSE GoTo 5i
40
l:Kl := INNAITEtIt + INNAI'{ElI+11t
IF K1 ='..' IEEN tl := N + 1 ELSE COIO 2;
1 3= t + 3i
coro 1;
2 : I T N > O T S E N
BEGIN
P1 := Si
F O R I r = l t O N D O
BECIN
Dl := ";
FSPLTT(P1, D1, N1, E1)i
Pl := Dli
D E L E T E( P I , L E N G I E ( P 1 ) ' I ) ;
END;
DELETE ( INNAME, 1,t|r2+N-1 ) ;
INNAI.{E != Dl + INNAUE;
DELETE ( rl[NAl'lE, LENCTB (Dl ), I ) ;
END;
5: DRIVE-No (OUINAME ) ,
L := LENGTE(OUNAT'{E);
o E T D T R ( D R _ N O ,S ) ;
= IBE}I
IF ((L = T) AND (ourNAr'{Et1l
"',))
BEGIN
oUrNAME := Si
co10 6;
E}ID;
r i= l; Kl != "i N :g oi
= '.' IEEN CioTO 3 '
tF Orxr!|AltD[l]
ELSE GOTO 6i
3:R1 := oUfNAlrEtIl + otJ1INAuE[I+11;
I F K l = ' . . ' T E E NP 3 ; | f * I '
ELSE GoTo {i
I := I + 3i
ooTo 3;
IIIIFN>OIEEN
BECIN
Pl := S;
F O R I : = l I o N D o
BECIN
Dl := "i
F S P L T T ( P 1 ,D 1 , N 1 , E l ) i
Pl t= Dl;
D E L E T E( P 1 ' L E N G I E( P I ) , 1 ) ;
END;
DELETE(OIITNAI'IE, 1,Nr2+H-l ) ;
O(IrNAITE := Dl + OUTNAI-{E,
DELETE(Ot :TNANE.LENGIE (Dl ), 1 ) i
ENDi +
- '\' IEEN IIINA]IE := s[1] + sl?!
IIIrr|E'
6sIF INNA$g[1]
't' rseN OuINAME := s[1] + S[2] + ottlrlN{B;
IF oulNAr,mtll =
Pl := II{NIIME,
F S P L I T ( P 1 ,D 1 , N 1 , E 1 ) i
II{NAHE l= Dl } Nl + El;
P2 := OUTNAHE,
FSPLTT(P2, D2, N2, E2li
OUTNA.UEr= D2 + N2 + Ezi
IF (Dt = ") TBEN
BEGIN
Dl != D2;
INNAIIE := Dl { INNAUE;
END;
41
IF (D2 = ") TBEN
BEGIN
D2 r= Dli
OtrtNAJ'{E := Dl + OIIrHA$E;
END;
IF Dl <> D2 TAEN
BEGIN ., ) i
AI'LOWED.. 'COT'fiAND AAORIED..
WRITELN('DTFFERENT PATB/DRIVE IS NOA
CEDIR(s) iEAI,Ti
END;
ET|D;
PROCEDT'RE ADD-DR I VE-NAT'{E i
BEGIN
32 r= "i s2 != coPY(Dl, 2, Lli
' ! ' TEEN
IF s2 <>
BEGIII
DRrVE_NO( INNAT'{E) ;
c E l D l R ( D R _ X O ,S ) ;
j,.-
S1 := 5 1 r = C O P Y ( S ;1 ' 2 ) i
INNAJ'|E != sl + INNN{E;
END'
s2 r= "i
s 2 ! = c o P Y( D 2 , 2 . l l i
tF 52 <> ':' TBEN l:-!
BECIN
DRIvE-No(OIIINAI.{E) i
G E T D I R( D R - X O ,s 2 ) i
Sl := r,.- Sl t= COPY(S21 Lt zri
O(JITNAMEl= S1 + OIXTHA$E;
ENDi
ENDi
PROCEDT'RECEECK,-CT'R_D I R;
DrR rs TEE CI'RRENT DrR)
(ROUrrrE ro CBECK wEernin tEE SOttRcE
BEGIN
OD_E9-CD s= FAI,SE,
DRIVE-NO( IHNAUE) ;
S : = " i
cE?DrR(DR_NO,S) i
pl := ,'; Dl := "; Nl .= "i EL r= "i
IFS=INllA-l-{ETEEH
(
BEGIN !
I
OD-EQ-CD := TRUE;
Pl := INNAltlEi
,lI
FSPLTT(Pl, D1, l|l' El]i
D E L E T E( D I , L E N C I E ( D 1 ) , 1 ) ;
cEDrR(D1);
END;
END;
PRoLEDUREVIrLD-CSECK(DTRNAUE: STRING-)i
r & ? AlrDBr'Al{xs}
liourrnn ro cBEcKwrLD cAxDs
BECIN
FOR I!= I ro LEXCIB(DIRNAilE) Do
BEGIN
=' r' ) oR ( DIRNA]|E I I | = " ) ) TEEH
t F ( ( D I R I I A I - { EI I | = ' a ' ) o R ( D I R N A I i E I I |
B E GI H IN A')i
}IRITE('I{ILD C}NDS ? I i AND BIINKS AXE NOT ALLOWED
N A $ E . . . C O } T U A N D A B O R T E D . . ., } i
HRITA('DIRECTORY
HRITELN; CEDIR ( S ) ; EALA,
E}TD;
END;
E}TD;
42
PROCEDI,R.E DIR-NA'ME-CEECK(DIRNAME : STRINC) ;
CEDIR(s) tEAL!;
ElrD i
E}TDi
END;
PROCEDURE },ITEI}IPAXEi - oF cuR DrR)
rEE SOLRCE DrR rs A sl'BsEl
tRouTrHE TO CEECK wsirsen
BECIH ,,
I } T P A T ET = F A I S E ; S : = i
DRIVE_NO( rHNAl.{E);
GETDIR(DR-NO, S) i
i^rrrFr \ .
s1 := i,'-s1 := COPY(SrI' LENOTE(INNAUE))'
IF 51 = II{NAIIE fEEl| ItrP418 != rRUEi
END;
BEGIH
=-iirpers {MIIX RoUArrE} := FAISE,
t= FALSE; 6o-rQ-co l= FAI.SE; FotrND
IF PARil.ICOTJNT <> 2 TEEN
BECI}I
A DIRECIORY" ., ) i'
WRITE( ',IEIS PROGRAI{ts FoR RENMTNG cEARs) ' ' )'
wRIrE( 'ENTER oLD DIRECToRI rAHE DR: \PATE\DINltT!111-:65
o R ' ' \ ' ' \ ' ' \ D r R E c r o R v N A I ' | EF o R M )' ; "
r{RrtE('oR . . \. . \.:i.:-;oRM \''
W"RTTELNi
READLN(INNAME) i cEARs)' ) t
l{RtlE(' ENTER NEvf DIREctoRY NAI{ErDR3\PAr8\DIRN1T1I1t:-!5
lrRrre(' oR . . \. . \.;i:l-;oii on :',1::i'' \''\DrREcroRr NAUEFoRil") i
piru or rEE souRcEDtREcloRY rs Ar'LowED')');
wRrrE('( DEFAuLr
DRIVE'"',);
w R r T E ( 'u, s E r s E S A M E
WRITEt}{;
READLN ( OUTNA}TE ) ;
END
ELSE
BEGIN
II{NAME := PARAilSTR(1) i
OUTNAXE := PARAr'tSrR(2) i
ENDi
LENGTE(II|NN{E) Do Ir{NAI{E[I! := UPCASE(INNAMEIII)t
ion't ,= l lo
l= UPCASE(OurNnHBII I ) ;
ion t ,= tr To LENGTE(ouNAI'{E)Do oungA}lElll
PATB CBECR,
eoo-6nrve-xexe;
CAECK-CI'R-DIRi
LILD CEECK(INNAUE);
t
orn frnr'rrcEEcK(r$ilRlIE)
wrLE cueEr(omxAuE);
orn frero-caEcr (otEHAr'{E
)i
DIR_cEEcK-1 i
44
DIR_CEEcK_2
i
SAilE_NA}IEi
FILE_CBECKi
fF oD_EQ_CD = FAISE TEEN IIITEIHPATE;
INAME := INNAIIE,
ONAI'{E : = OtIfNA}tE;
INNAI.IE != INNAME + CSR(O),
OUTNAUE != oUTNAME + CER(0),
WIIE'REG DO
BEGIN
I
DS := SEC(INNAI'IEI1] ) ; . 1
DI r= oFs(I}[NAI.|E[1] ) ; l *
A! != (Ss6)t I
Es 8= sEO(O[trNAr.tE[1] ) t
DI : = OFs(orxrNAr'[8[
1l ) i
H S D O S( R E o ) i
-1
IF ( (TLAGS AIID CARRY_FLAO) ) lEEx
BEGIN
} | R r t E L N ( ' , D T R E C T O R Y N O T R A N A J . I E D . . . C B E C KA C C E S S R I O E T S . . . ' , )i
cnDIR(s);EALTi
END
SLSE
BEGIH
wnrrELN('"tTiTili;"
^;tllffiio*". ".',ourNAltE)i
IF OD_EQ_CD 188!{ CEDrR(OUTNAME);
IF INPAIE IEEN
BEGIN
G E T D ' R ( D R - , , N O ' S ); D E L E T E ( S , l , L E N G T E ( I H A } I E ) ) ,
s !e oNAt'tE + si CEDIR(S)t
E$n;
ErID; .,
ENDi
EI{D.
6.0 Referenceg i I
1> furbo Pascal 5.0 User'3 Guid€. (
ff Turbo Pascal 5.0 Ref€r€nce Guide.
F us-ooE uaer'a Guido and User'r R€fcrencs.
if Prrgirarrer't Refera:oc€ llaoual for faH.iParsonal Cooputer
tsy titevea Arobrr,ret & led Forgaron"
5> Ibe US-Dos Elandbook
By Richarcl Allan Ki,ng.
6> tEr us c
B!' Yarhwaut Kanetkflr.
\
I