4. Дастурни оверлейли =урилиш. Жуда кып щолатларда, дастур компиляция =илингандан сынг маълум быладики дастур учун ШЭХМ нинг ички тезкор хотираси етишмай =олади, яъни дастур талаб =илган хотира жойининг ми=дори ШЭХМ нинг хотирасидан катта былади. Бу щолатда экранда Not enough memory («хотира етишмаяпти») маъносидаги хато кырсатилган маълумот щосил былади Бундай щолатларда дастурчига Overlay модули ёрдамга оши=ади.
Overlay модули дастурни алощида былакларга ажратишнинг кучли воситаси щисобланади. бундай былаклар сони ихтиёрий сонда былиши ва бу былакларга зарур быладиган жой ми=дори ШЭХМ имкониятидан анча ю=ори былиши мумкин. Оверлейли тарзда тузилган дастур битта . ЕХЕ кенгайтмали файлдан ва шундай номли лекин .ОVR кенгайтмали яна битта файлдан ташкил топган былади. Бунда ЕХЕ – файл дастурнинг доимий =исмини, OVR – файли эса зарур пайтда хотирага юкланадиган кодларни са=лаб туради. Оверлейли тарзда тузилган дастурда хотирада фа=ат хозирдагина зарур быладиган оверлейли процедура ва функцияларгина са=ланади, улар керакли пайтдагина ызларининг жойларини бош=а процедура ва функцияларга бышатиб беради. Бу щолда =ышимча хотира жойи талаб =илинмайди чунки дастурнинг оверлейли =исмлари хотиранинг фа=ат бир =исминигина навбат билан ишлатади холос. Хотиранинг мазкур =исми оверлейли буфер деб аталади. Оверлейларни хотирага юклаш ва хотирадан бышатиш каби ички амалларнинг барчасини оверлей администрацияси автоматик тарзда бажаради. Дастурчидан эса фа=ат дастурнинг оверлейли парчаларини эълон =илиш ва унинг администрациясини ишга солиш талаб =илинади холос.
5. Оверлейли дастурларни расмийлаштириш =оидалари Турбо Паскалда оверлейлар модуллар даражасидагина яратилиши мумкин. Оверлейлар худди оддий модуллар каби эълон былими (INTERFACE) ва хисоблаш былими (IMPLEMENTATION), щамда уни фаоллаштирадиган =исмлардан ташкил топади. Шу билан бир =аторда =уйидаги шартларни бажарилиши щам талаб =илинади.
хар бир оверлей модул учун унга олдиндан оверлейлилик щу=у=ини берувчи {$F+} компиляция режими ырнатилиши лозим;
оверлейли =исм-дастурлардан бевосита ва билвосита фойдаланувчи барча процедура ва функциялар {$F+} компиляция =илиниши лозим.
Бу шартларни бажариш учун оверлейли модулнинг бош =исмига {$F+, $О+} директиваларини ырнатиб, асосий дастурнинг биринчи =аторларига {$F+}, компиляция режимининг калити ёзиб =ыйилади.
Бундан таш=ари, асосий дастур overlay модулига уланган былиши ва uses директивасидаги =айси модуллар оверлейли эканлиги кырсатиб =ыйилади.
Мисол сифатида =уйидаги дастурнинг бош =исмини кырсатиб ытамиз:
Program MultiCalc; {$F+} uses crt,dos,Overlay, MultiCalc, divCalc AddCalc, Subcalc; { $O MultiCalc} { MultiCalc модули –оверлей }
{ $O DivCalc} { DivCalc модули –оверлей }
{ $O AddCalc} { AddCalc модули –оверлей }
{ $O SubCalc} { SubCalc модули –оверлей }
. . . . . . . . . .
Ащамият берган былсангиз { $O <модул исми >} директиваси оверлейли модулларни кырсатиш учун ёзилишга мажбурдир, бундан таш=ари, uses директивасининг модуллари рыйхатида overlay модули оверлейли модуллар рыйхатининг бошида келиши шарт.
Оверлейли дастурлар хотирада компиляция =илинмайди, энди улар фа=ат дисклардагина щосил =илинади. Дастур компиляциясидан сынг (бу дастурни MULTICALC.PAS номи билан атайлик) MULTICALC.ЕХЕ бажарувчи файли ва оверлейли деб эълон =илинган барча модуллардаги процедураларнинг кодларини са=ловчи йылдош файли щосил =илинади.