Программаның жазылуы




ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Қаныш Сатпаев атындағы қазақ ұлттық техникалық университеті
Есептеу техника кафедрасы
КУРСТЫҚ ЖОБА
Тақырыбы: Меню
жетекші:
аға оқытушы
Мустафина Б.М.
нормоконтролер:
оқытушы
Азембаева Г.Т.
Тапсырған күні:
“___” _________ 2003 г.
қолы:
_____________________
студент: Бектасова Г.
тобы: ЗБИ-00-1
мамандығы: 3704
Алматы 2003
Қазақстан Республикасының Білім және Ғылым Министірлігі
Қ.И.Сәтпаев атындағы Қазақ Ұлттық Техникалық Университеті
Ақпараттану және Ақпараттық Технологиялар Институты
Есептеуіш техникасы кафедрасы
Мамандығы
Курстық жұмысты орындауға тапсырма
Студент Бектасова Г. А.
Жұмыстың тақырыбы ”Меню“программасын құру. Оны толық экранда көру,
Аяқталған жұмысты тапсыру уақыты:19.05.03.
Тапсырманың берілген уақыты: 15.03.03.
Жұмыстың жетекшісі Мұстафина Б.М.
Мазмұны
Кіріспе
1.Есеп қойылымы және шешудің алгоритімі...............................5
Ассемблер тілінде программалау..........................................5
Ассемблер командасының пішімі.........................................6
Программаның жазылуы........................................................6
Есепті шешудің алгоритімі....................................................7
Программаның жолдық көрсетілуі.......................................8
2.Программадағы инструкция..........................................................9
2.1 Прогрммистке (жүйелік) басқару..............................................9
2.2 Операторлық босқару.................................................................9
3. Программада қолданылған функциялар мен командалар........10
Қортынды..........................................................................................14
Қолданылған әдебиеттер
Қосымша А
Кіріспе
Бұл курстық жобада маған қойылған тапсырма “Меню” программасын
Берілген курстық жұмыс программасы меню вариантын ұсынады. Программаны
Есеп қойылымы және шешудің алгоритімі
Ассемблар тілінде программалау
Ассемблер тілінде программа жазу кезінде қолданылатын кейбір қажетті
Оператор- бұл белгілі бір әрекет жасау үшін машинаға
Макрокоманда - бастапқы программадағы бірнеше машинелік командалардың
Ассемблер тілінде тұрақты шамалардың бірнеше түрі қолданылады.
Екілік тұрақты шама (0 және 1). Бұл символдар
Оналтылық тұрақты шамалар (0 – 9,A,B,C,D,E,F). Міндетті түрде
Ондық тұрақты шамалар (0-9). Соңына D әрпін қоюғада,
Символдық тұрақты шамалар. Тырнақшаға алынған кез-келген символдар немесе
1.2 Ассемблер командасының пішімі
[таңба:] шартбелгі [1-операнд],[ 2-операнд] [;түсініктеме]. Тікжақшаға
Таңба
Таңба символдардан тұрады. Бұл символдар жинағы қос нүктемен
- таңба аталымының арасында бос аралық болмау керек;
таңба аталымы ішінде (.) пайдаланылатын болса, ол бірінші
регистлердің аттарын таңба ретінде алуға болмайды;
таңбаның аталымы үшін белгілі бір мағананы білдіретін сөздер
көп қайталанатын бірдей әріптерді пайдаланбаған дұрыс (мысалы: АААА).
Операцияның шартбелгісі.
Шартбелгі- команданың мнемоникалық шартбелгілерінен құралады.Таңбадан және басқа
Операндтар.
Операндта деректер, деректердің мекені және регистрлердің аттары сақталады.
Түсініктеме.
Белгісі- нүктелі үтір (;) . Алдындағы команданың бөліктерінен
1.3 Программаның жазылуы
“Меню” программасы ассемблер тілінде жазылған.
Бұл программаны орындау үшін осы ассемблер тілінің
Жүйелік талап: компъютер IBM PC және операциялық жүйе
Бұл программа Intel Pentium 166, MMX ,VGA.28 электронды
Программаны орындауға шақыру командалық жолдағы Nazym.exe файлын шақыру
Бұл программа “UP” ,”DOWN”, ”ENTER” және ”ESC” пернелерімен
Графикалық режимде экранға енгізілетін ақпарат: негізгі меню.
Тапсырма шешімінің алгоритімі 1,4 пункте берілген.
1.4 Есептi шешудiң алгоритмi
Программа бойынша инструкция
2.1. Программистке (жүйелік) басқару.
Программаның қолданылуы – текстік файлды қарау. IBM PC
Программа GULNARA.EXE файлын жүктеу арқылы іске асады.
Кіріс мәліметтер – командалық жолда файл аты.
Шығыс мәліметтер – дисплейде текстік ақпарат.
2.2. Операторлық басқару (пользователь)
Программаны іске қосу KURS каталогындағы GULNARA.EXE файлын жүтеу
Бұл программаны іске қоспас бұрын кез-келген кеңейтілуі .TXT
”Ch.DIR” пунктін және пернесін басқаннан кейін
Перне атауы Атқаратын қызметі
Төменге бағыттаушы стрелка Курсорды төмен жылжыту
Жоғарыға бағыттаушы стрелка Курсорды жоғары жылжыту
ESC Шығу
3. ПРОГРАММАДА ҚОЛДАНЫЛҒАН ФУНКЦИЯЛАР МЕН КОМАНДАЛАР
Мен бұл курстық жұмысты орындау барысында Ассемблер машиналық
Енді жоғарыда айтылған функцияларды сипаттап өтейік:
DOS (21h) үзуінің функциясы:
09h – дисплейге символдар қатарын шығаруды жүзеге асырады.
Символдық жолды стандартты шығу құрылғысына шығарады. Жол $
Шақыруда:
DS:DX - $ -белгісімен бітетін
01h – пернетақтадан символды енгізуді жүзеге асырады.
Стандартты енгізу құрылғысынан қатарды шығарады да оны стандартты
3Fh – деректерді құрылғыдан енгізуді жүзеге асырады.
Деректерді файлдан қолданушының буферіне жібереді де көрсеткішті модифициялайды.
Шақыруда:
BX – файлды сипаттаушы
DS:DX –деректерді оқу үшін буфер адресі
CX – оқылатын байт саны
Қайта келу кезінде:
AX – қате коды, егер CF орнатылған
AL –оқылған байттардың нақты саны
40h – Файлды жазуды немесе құрылғыға шығаруды жүзеге
Деректерді файлдан қолданушының буферіне жібереді де көрсеткішті модифициялайды.
Шақыруда:
BX – файлдың немесе құрылғының логикалық номері. Дисплейдің
CX – шығарылатын символдар саны
DS:DX – буфер адресі
Қайта келу кезінде:
AL – нақты саналған байт саны
Егер CF=0, онда AX-ке фактілі жазылған байттар
4Ah –Жадының белгіленген блогының өлшемін өзгертуін жүзеге асырады.
Жадының белгіленген блогының өлшемін кішірейтеді немесе кеңейтеді.
Шақыруда:
BX – блоктың қажет өлшемі
ES – модифицияланған блоктың сегменттік адресі
Қайта келу кезінде:
AX – қате коды
BX –жады блогының ең үлкен өлшемі
10h үзуінің функциясы – видио сервис:
01h – Курсордың конфигурациялық орнатылуын жүзеге асырады.
Текстілік видиорежимде ашылатын аппараттық курсордың бастапқы және соңғы
Шақыруда:
CH-тің 0…4 биттері – бастапқы қатар
СL-тің 0…4 биттері– соңғы қатар
02h – Курсордың позициясын орнатуды жүзеге асыру.
Көрсетіген бетте экранға текстілік координатта курсордың орнатады. Курсорды
Шақыруду:
BH – видио беттің номері, 0- бірінші бет
DH, DL – қатар, бағана
06h – Терезені жоғары айналдыру (немесе тазалау).
Терезені берілген координаттармен, берілген атрибуттармен ASCII–ің пробелдерімен немесе
Функцияны экранды немесе экранның кез-келген тікбұрышты ауданын тез
Шақыруда:
CH, CL – терезенің жоғарғы сол бұрыш қатары,
DH, DL – терезенің төмнегіоң бұрыш қатары, бағанасы
AL – бос қатар саны, төменнен жоғары жылжыту(0
BH – бос қатарлар үшін қолданылатын видио атрибут
08h – Курсордың позициясында қатарды және атрибутты
Берілген бетте ASCII символын және оның атрибутын курсордың
Шақыруда:
BH – бет
Қайта келу кезінде:
AL – символ
AH – атрибут.
09h – Символды атрибутымен курсордың ағымдағы позициясына шығаруды
Ағымдағы курсор позициясына қатарды және оның атрибуттарын графикалық
Шақырылу:
ВL – атрибут (текстілік режим) немесе түс
ВH – бет
AL – символ
СХ – қайталану коэффициенті
0Сh – Пиксельдерді жазу.
Берілген графикалық позицияда берілген түсті нүктені видиобуферге жазады.
Шақыруда:
АL – түс (түсті регистрдің номері)
ВH – бет
DX – графикалық қатар
СХ – графикалық бағана
BIOS (16h) үзуінің функциясы:
00h – пернетақтадан символды оқуды жүзеге асырады.
Перне басылғаннан кейін (егер ASCII кодасы бар символды
Қорытынды
Курстық жобамен жұмыс істеу уақытында ASSЕMBLER тіліндегі объективті
Дайындау барысында программалық документация., программалық ASSЕMBLER, MICROSOFT WORD,
Қолданылған әдебиеттер
1. Тұрым А. ЭВМ кешендер,
2. Куцый А.П, Мұстафина Б.М, Ахметова М.А
3. Финогенов К.Г Самаучитель по системным функциям
Москва 1993.
sseg segment
db 512 dup(?)
sseg ends
dseg segment
paramblk dw 7 dup(0)
exname db '2.exe',0
fname db 'readme.txt',0
bufin db 80 dup(' ')
handle dw 0
left = 8
top = 1
wids = 10
height = 5
StrNum db ?
StbNum db ?
atr db ?
ramka2 db ' Файл
ramka1 db 218,9 dup (196),191,10,13
db left dup(0),179,' Кpасный ',179,10,13
db left dup(0),179,' Желтый ',179,10,13
db left dup(0),179,' Зеленый ',179,10,13
db left dup(0),179,' Синий ',179,10,13
db left dup(0),192,9 dup (196),217,10,13,'$'
ramka3 db 218,7 dup (196),191,10,13
db 179,' *.EXE ',179,10,13
db 179,' *.TXT ',179,10,13
db 179,'Ch. DIR',179,10,13
db 179,'Ch.DISC',179,10,13
db 179,'See DIR',179,10,13
db 192,7 dup (196),217,10,13,'$'
DirPr dw DP1,DP2,DP3 path1 db 66,0,64 dup
errdir db 'Error!!! Directory does not exist...','$'
disks db 26 dup(0)
diskkol db 0
files db 0
filefind db '*.*',0
newDTA db 128 dup (0)
dseg ends
cseg segment
assume ds:dseg, ss:sseg, cs:cseg
;---------------------------------clear screen-------------------------------
Proc cls
mov cx,0
mov dx,184fh
mov al,0
mov ah,06h
mov bh,8
int 10h
ret
cls endp
;--------------------------------LineHOR--------------------------------------
proc lineHOR
mov cx,7
mov dh,0
mov ah,2
int 10h
lnhor: push cx
mov cx,1
mov ah,8
int 10h
mov ah,9
int 10h
inc dl
mov ah,2
int 10h
pop cx
loop lnhor
ret
lineHOR endp
;--------------------------------Line3--------------------------------------
proc line3
mov cx,8
mov dl,0
mov ah,1
int 10h
ln3: push cx
mov cx,1
mov ah,8
Int 10h
mov ah,9
int 10h
inc dl
mov ah,2
int 10h
pop cx
loop ln3
ret
line3 endp
;--------------------------------Line--------------------------------------
proc line
mov cx,wids-1
mov dl,left+1
mov ah,2
int 10h
ln: push cx
mov cx,1
mov ah,8
int 10h
mov ah,9
int 10h
inc dl
mov ah,2
int 10h
pop cx
loop ln
ret
line endp
;--------------------------------Draw HOR ramka-----------------------------
proc HorDrawRamka
mov ah, 02h ;Draw HOR Ramka
mov dh,0
mov dl,0
mov bx,0
int 10h
mov ah,09h
lea dx,ramka2
int 21h
ret
HorDrawRamka endp
;--------------------------------Draw ramka3-----------------------------
proc DrawRamka3
mov ah, 02h ;DrawRamka
mov dh, 1
mov dl,0
mov bx,0
int 10h
mov ah,09h
lea dx,ramka3
int 21h
ret
DrawRamka3 endp
;--------------------------------Draw ramka-----------------------------
proc DrawRamka
mov ah, 02h ;DrawRamka
mov dh, top
mov dl,left
mov bx,0
int 10h
mov ah,09h
lea dx,ramka1
int 21h
ret
DrawRamka endp
;--------------------------------Draw HOR background-----------------------------
proc HorBackground
mov ah,06h
mov al,0
mov bh,atr
mov ch,0
mov cl,0
mov dh,0
mov dl,79
int 10h
ret
HorBackground endp
;--------------------------------Draw background3-----------------------------
proc Background3
mov ah,06h
mov al,0
mov bh,atr
mov ch,1
mov cl,0
mov dh,7
mov dl,8
int 10h
ret
Background3 endp
;--------------------------------Draw background-----------------------------
proc Background
mov ah,06h
mov al,0
mov bh,atr
mov ch,top
mov cl,left
mov dh,top+height
mov dl,left+wids
int 10h
ret
Background endp
;----------------------------------------------------------------------------
DP1: ;Процедура установки директория
mov ah,2 ;Установить
mov bx,0 ;курсор
mov dh,4 ;в позицию
mov dl,10 ;4х10
int 10h
mov ah,0Ah ;Ввод
lea dx,path1 ;строки символов в пересенную path1
int 21h
xor bx,bx
mov bl,path1[1] ;Записать в BL количество введенных символов
mov path1[bx+2],0
mov ah,3Bh ;Установить
lea dx,path1[2] ;текущий директорий
int 21h
jc errchdir ;Если ошибка - перейти на
call cls ;Обновить
call HorBackGround ;экран
call HorDrawRamka ;
mov ah,02 ;Установить
xor bx,bx ;курсор
mov dh,20 ;в позицию
mov dl,0 ;20x0
int 10h
mov ah,09h ;Вывести
lea dx,mes1 ;сообщение mes1
int 21h
ret
errchdir:
call cls ;Обновить
call HorBackGround ;экран
call HorDrawRamka
mov ah,02 ;Установить
xor bx,bx ;курсор
mov dh,20 ;в позицию
mov dl,0 ;20x0
int 10h
mov ah,9 ;Вывести
lea dx,errdir ;сообщение errdir
int 21h
ret
;----------------------------
DP2: ;Процедура переключения текущего диска
mov disks[0],'A' ;Записать в таблицу имен дисков "A"
mov diskkol,0 ;Сбросить количество обнаруженных дисков
xor dx,dx ;В DX будет логический номер
mov bx,1
mov cx,24 ;кол-во проверяемых дисков
mov dl,03h ;Начать проверку с жестких дисков
lea si,diskpath ;строка, куда будет возвращаться путь на
checkdisks:
test cx,cx ;если CX=0
jz chngdisk ;то перейти на chngdisk
mov ah,47h ;определить текущий директорий на
int 21h ;проверяемом диске
jc nodisk ;идти на nodisk, если ошибка
mov disks[bx],dl ;иначе записать в таблицу имен дисков
add disks[bx],40h ;и преобразовать его в латинскую букву
inc bx ;перейти к следующему имени диска
inc dl ;следующий логический номер диска
dec cx ;уменьшить счетчик
jmp checkdisks ;вернуться на проверку
nodisk: ;если диск не определился
inc dl ;проверить следующий логический номер
dec cx ;уменьшить счетчик
jnz checkdisks ;если счетчик не = 0,
chngdisk:
mov diskkol,bl ;в DISKKOL - количество найденных
call cls ;Обновить
call HorBackGround ;экран
call HorDrawRamka
mov ah,02h ;Установить
mov bh,0 ;курсор
mov dh,20 ;в позицию
mov dl,0 ;20x0
int 10h
xor cx,cx ;Обнулить счетчик
mov cl,diskkol ;записать в счетчик количество дисков
xor bx,bx
diskout: ;Вывод имен найденных дисков
mov al,disks[bx] ;Поместить имя диска в AL
int 29h ;Вывести его на экран
inc bx ;перейти к следующему имени
loop diskout
mov ah,02h ;Установить
mov bh,0 ;курсор
mov dh,20 ;на имя первого
mov dl,0 ;диска (A)
int 10h
dec diskkol
readdiskkey:
mov ah,0 ;Ожидание нажатия на клавишу
int 16h
cmp ah,01h ;ESC
je ret1
cmp ah,4Bh ;Стрелка ВЛЕВО
je d_left
cmp ah,4Dh ;Стрелка ВПРАВО
je d_right
cmp ah,1Ch ;Enter
je d_enter
jmp readdiskkey ;Вернуться, пока не будет нажата
ret1:
ret
d_left:
cmp dl,0 ;Если курсор находится в
je readdiskkey ;то вернуться на ожидание нажатия
dec dl ;иначе -
mov ah,02h ;сдвинуть
mov bh,0 ;курсор
mov dh,20 ;влево на одну позицию
int 10h
jmp readdiskkey
d_right:
cmp dl,diskkol ;Если курсор находится на имени
je readdiskkey ;то вернуться на ожидание нажатия
inc dl ;иначе -
mov ah,02h ;сдвинуть
mov bh,0 ;курсор
mov dh,20 ;вправо на одну позицию
int 10h
jmp readdiskkey
d_enter:
xor bx,bx
mov bl,dl ;Записать в BL позицию курсора
mov dl,disks[bx] ;Записать в DL имя выбранного диска
sub dl,41h ;Преобразовать из латинской буквы в
mov ah,0Eh ;Функция, устанавливающая диск текущим
int 21h
ret
;----------------------------
DP3: ;Процедура вывода на экран
Int 10h
Mov ah,4Eh ;Найти первый файл в
Xor cx,cx
mov cl,00010111b ;Атрибут файла (папка, скрытый, системный, архив)
lea dx,filefind ;Маска поиска файлов(*.* - все файлы)
int 21h
xor bx,bx
writefname:
cmp files,24 ;Если выведено 24 файла, то
je newscr ;на newscr
mov al,newDTA[1Eh+bx] ;Иначе - запись в AL очередной
cmp al,0 ;Если все имя полностью
je findnext ;то перейти на findnext
int 29h ;Иначе - вывести букву
inc bx ;и перейти к следующей
jmp writefname
findnext:
xor bx,bx
inc files ;Увеличить число выведенных файлов
mov ah,4Fh ;Найти следующий файл
int 21h
jc nofiles ;Если ошибка - перейти на
mov al,10 ;/
int 29h ;|перевести курсор
mov al,13 ;|на следующую строку
int 29h ;\
jmp writefname ;вернуться на вывод имени фала
newscr:
mov ah,0 ;Ожидать нажатия любой клавиши
int 16h
mov ax,0003h ;Очистить экран
int 10h
mov files,0 ;Сбросить кол-во выведенных файлов
jmp writefname ;Вернуться на вывод имени файла
nofiles:
mov ah,0 ;Ожидать нажатия любой клавиши
int 16h
call cls ;Обновить
call HorBackGround ;экран
call HorDrawRamka
ret
;---------------------------------Context menu-------------------------------
Rab1: mov atr,01000111b
jmp Menu2
Rab2: mov atr,01100111b
jmp Menu2
Rab3: mov atr,00100111b
jmp Menu2
Rab4: mov atr,00010111b
jmp Menu2
Enter2: cmp StrNum,2
je Rab1
cmp StrNum,3
je Rab2
cmp StrNum,4
je Rab3
cmp StrNum,5
je Rab4
jmp Menu2
Up2: cmp StrNum,2
je Begin1
sub StrNum,1
jmp Menu2
Down2: cmp StrNum,5
je Menu2
add StrNum,1
jmp Menu2
Enter2_: jmp Enter2
Up1: cmp StrNum,2
je Begin1
sub StrNum,1
jmp Menu1
Down1: cmp StrNum,6
je Menu1
add StrNum,1
jmp Menu1
Enter1: cmp StrNum,3
je fl1
cmp StrNum,2
je fl21
jmp Enter1_1
Begin2: jmp Begin1
halt1: call cls
mov ax,4c00h
int 21h
Begin1: jmp Begin
Menu2:
call BackGround
call DrawRamka
mov dh,StrNum ;т»чют яЁюЁшёютъш ышэшш
mov bl,00110111b ;рІЁшсіІ ъіЁёюЁр
call line
zapros2:mov ah,0h
int 16h ;Press any key
cmp ah,72
je Up2
cmp ah,80
je Down2
cmp al,13
je Enter2_
cmp al,27
je Halt1
jmp zapros2
jmp Zapros
fl1: jmp fl
fl21: jmp fl2
Up11: jmp up1
Menu22: jmp Menu2
Menu1:
call BackGround3
call DrawRamka3
mov dh,StrNum ;т»чют яЁюЁшёютъш ышэшш
mov bl,00110111b ;рІЁшсіІ ъіЁёюЁр
call line3
zapros1:mov ah,0h
int 16h ;Press any key
cmp ah,72
je Up11
cmp ah,80
je Down1
cmp al,13
je Enter1
cmp al,27
je Halt1
jmp zapros1
Enter1_1:
cmp StrNum,4
je dirproc
cmp StrNum,5
je dirproc
cmp StrNum,6
je dirproc
Left_: cmp StbNum,1
je Begin
sub StbNum,8
jmp Begin
Right_: cmp StbNum,25
je Begin
add StbNum,8
jmp begin
Down_: cmp StbNum,9
je Menu22
cmp StbNum,1
je Menu1
jmp zapros
dirproc:
xor bx,bx
mov bl,StrNum
sub bl,4
shl bx,1
call dirpr[bx]
jmp Menu1
;--------------------------------Main program--------------------------------
start: mov ax, dseg
mov ds,ax
mov ah,1Ah ;Установить новую область,
lea dx,newDTA ;куда будет записываться имя файла
int 21h ;при обращении фунцкий поиска
mov StrNum,top+1
mov StbNum,1
mov atr,01000111b
begin: call cls
call HorBackGround
call HorDrawRamka
mov dl,StbNum ;т»чют яЁюЁшёютъш ышэшш
mov bl,00110111b ;рІЁшсіІ ъіЁёюЁр
call lineHOR
zapros: mov StrNum,2
mov ah,0h
int 16h ;Press any key
cmp ah,75
je Left_
cmp ah,77
je Right_
cmp ah,80
je down_
cmp al,13
je Enter_
cmp al,27
je Halt
jmp zapros
;--------------------------------Enter-----------------------------
Enter_: cmp StbNum,17
je Video
cmp StbNum,25
je Halt
jmp zapros
halt: ;mov ah,0h
;int 16h
call cls
mov ax,4c00h
int 21h
fl2: mov bx,abcd
mov ax,es
mov bx,ax
mov ah,4ah
int 21h
push ds ;эрёІЁюшь es
pop es
mov ah,4bh ; exec
mov al,0 ; яюфґіэъ¶ш чряіёър
mov bx,offset paramblk ; эхІ ярЁрьхІЁют
mov dx,offset exname
int 21h
jmp halt
video:
mov ds,ax ; іёІрэютър тшфхюЁхцшьр
mov ah,0h
mov al,10h
int 10h
mov ah,0ch
mov al,0eh
mov bh,0
mov cx,50
c2: mov dx,10
c1: int 10h
inc dx
cmp dx,330
jne c1
inc cx
cmp cx,610
jne c2
mov ah,01h ; stop
int 21h
mov ax,3 ; юсЁрІэю т
int 10h
mov ah,0h
int 16h
jmp halt
fl: call cls
mov ah, 2h
mov dl, 1
mov dh, 1
int 10h
mov ah,3dh
mov al,2
mov dx,offset fname
int 21h
mov handle, ax
mov ah,3fh
mov bx,handle
mov cx,80
mov dx,offset bufin
int 21h
mov cx,ax
mov ah,40h
mov bx,1
mov dx,offset bufin
int 21h
mov ah,0h
int 16h
mov ax,4c00h
int 21h
cseg ends
abcd segment
abcd ends
end start
1







Ұқсас жұмыстар

Turbo Pascal тілінің операторлары жайлы
Паскаль тіліндегі негізгі элементтері тілдің алфавиті мен сөздігі
Turbo pascal тілі
Жау кемесі
Турбо Паскаль жүйесінде қосалқы программаларды ұйымдастыру технологиясы туралы
Turbo Pascal программалау тілі туралы жалпы түсінік
Паскаль программасындағы функциялар мен процедуралар
Есептеу техникасынан дәрістер
Turbo Pascal программалау тіліне шолу
Turbo Pascal 7.0 интегралдық программалау ортасын пайдалану