з файлу "ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 ЛЬВОВ РУКОВОДСТВО ПРОГРАММИСТУ.txt"
ПЕРСОНАЛЬНА ЕОМ
ПК-01 "ЛЬВІВ"
КЕРІВНИЦТВО ПРОГРАМІСТУ
1990 р.
Середовище програмування MADL |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Середовище програмування MADL » Архів (чернетки) » Чернетка. Переклад.ПЕРСОНАЛЬНА ЕОМ ПК-01
з файлу "ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 ЛЬВОВ РУКОВОДСТВО ПРОГРАММИСТУ.txt"
ПЕРСОНАЛЬНА ЕОМ
ПК-01 "ЛЬВІВ"
КЕРІВНИЦТВО ПРОГРАМІСТУ
1990 р.
ЗМІСТ
Холодний старт........................................3
Гарячий старт.........................................3
Порти вводу-виводу....................................3
Підключення принтера..................................4
Відеоконтролер.......................................9
Системні підпрограми...............................12
1.Введення символу з клавіатури - F803...................12
2.Введення символу з клавіатури без обробки службових
клавіш - F806........................................13
3.Виведення символу на екран - F809......................13
4.Пряма адресація курсору - F82D....................14
5.Виведення тексту на екран - E4A4..................14
6.Вивод на екран вмісту рег.А в 16-річному
форматі - FFD6.......................................14
7.Виведення на екран вмісту регістрової пари HL в
16-річному форматі - FFD1.............................14
8.Виведення символу на принтер - F80C..................14
9.Вивод символу на екран і на принтер - F80F.........14
10. Висновок на принтер графічної інформації - E627....15
11. Статус клавіатури - F812.........................15
12. Обчислення контрольної суми - F815...............15
13. Очищення екрану - F836.............................15
14.Очищення екранного ОЗУ - EBBC......................15
15.Очищення робочого поля екрана - EBA5...............15
16.Курсор на початок екрану - EBE4..................15
17.Короткий звуковий сигнал - F81B................16
18.Музичний сигнал - F81E.........................16
19.Переміщення масивів - E11F.......................16
20.Заповнення області пам'яті кодом - E12A............16
Графіка..............................................16
1.Виведення точки на екран - F821........................16
2.Стирання точки - F020..............................16
3.Лінія на екран - F824..............................17
4. Прямокутник - F827...............................17
5.Зафарбований прямокутник - F82A................17
6.Кольорова палітра - F833............................17
Додаток 1. Перелік скорочень 18
-3-
ХОЛОДНИЙ СТАРТ
При натисканні клавіші <СБР> здійснюється обнулення системного ОЗП, перевантаження знакогенератора з ПЗП до системної ОЗП, встановлюються в вихідний стан робочі осередки системного ОЗУ, призначаються системні пристрої вводу-виводу, на екран видається заставка, перевантажуєся BASIC із ПЗУ в ОЗУ. Розподіл пам'яті представлено на мал.1.
-------------------------------------------------- ---
FFFF | |
| |
| |
| |
| драйвери, системні підпрограми | ПЗУ
| генератор, BASIC | 16К
| |
| |
| |
C000 | |
-------------------------------------------------- ---
-------------------------------------------------- ---
BFFF | |
| системне ОЗП |
| 4 К |
B000 | |
|------------------------------------------------- ----|
AFFF | |
| буфер символьних змінних
AFC1 | |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
AFC0 | |
| стек |
| |
| . . . . . . . . . . . . . . . . . |
| |
| |
| |
| вільна область |
| |
| |
ZZZZ | |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| | ОЗУ
| масиви |
YYYY | | 48К
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| |
| змінні |
XXXX | |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| |
| BASIC програма |
| у внутрішньому поданні |
1723 | |
|------------------------------------------------- ----|
1722 | |
| |
| B A S I C |
| |
| |
0249 | ZZZZ – початок вільної області |
0247 | YYYY - початок області масивів
0245 | XXXX - початок області змінних |
0243 | 1723 – початок BASIC-програми |
| |
| B A S I C |
0006 | |
|------------------------------------------------- ----|
0005 | |
| не використовується |
0000 | |
-------------------------------------------------- ---
Мал. 1.
В ЯП 0243/0244 зберігається адреса початку BASIC-програми, 0245/0246 - адреса області змінних, 0247/0248 - адреса області масивів, 0249/024А - початок вільної області. Після холодного старту переважають у всіх ЯП буде адресу 1723, тобто. відразу після BASIC йде вільна область.
ГАРЯЧИЙ СТАРТ
Гарячий старт проводиться при одночасному натисканні клавіш <Ц>+<СБР>. Обнулюється системне ОЗП, призначаються системні пристрої. Введення-виведення, відбувається старт системи. Заставка не видається,
BASIC не перевантажується, всі програми користувача зберігаються. Адреса старту системи має бути занесена до ЯП BFEC/BFED. За замовчуванням туди міститься адреса гарячого старту BASIC - D7D9.
На мал.2 представлено розподіл пам'яті у системному ОЗУ. Розглянемо докладніше використання деяких ЯП.
-6-
-------------------------------
BFFF | |
| точки старту драйверів
BFEB | |
|-------------------------------|
BFEA | |
| робочі осередки |
| системних підпрограм
BE00 | |
|-------------------------------|
BDFF | |
| |
| вільно |
| |
B400 | |
|-------------------------------|
B3FF | |
| генератор |
B000 | |
-------------------------------
Мал. 2.
У комп'ютері призначаються такі пристрої вводу-виводу:
1.Пристрій введення N1: точка входу в драйвер F803
2.Пристрій введення N2: " " F806
3.Пристрій виведення N1: "F809"
4.Пристрій друку : " " F80C
5.Пристрій виведення N2: "F80F
6.Підпрограма статусу пристрою введення: т.вх. F812
Фізичні пристрої введення-виводу визначаються через робочі ЯП
системне ОЗП. У пам'яті комп'ютера це виглядає так:
ПЗУ
F800 C3 EB BF JMP 0BFEBH
F803 C3 EE BF JMP 0BFEEH
F806 C3 F1 BF JMP 0BFF1H перехід на
F809 C3 F4 BF JMP 0BFF4H точки старту
F80C C3 F7 BF JMP 0BFF7H у системному ОЗУ
F80F C3 FA BF JMP 0BFFAH
F812 C3 FD BF JMP 0BFFDH
ОЗУ
BFEB C3 D9 D7 JMP 0D7D9H - гарячий старт BASIC
BFEE C3 00 E8 JMP 0E800H – введення символу з клавіатури
BFF1 C3 43 E8 JMP 0E843H - введення символу з клавіатури
BFF4 C3 68 DF JMP 0DF68H - виведення символу на екран
BFF7 C3 36 E2 JMP 0E236H - виведення символу на принтер
BFFA C3 22 E2 JMP 0E222H - символ на екран та принтер
BFFD C3 88 E8 JMP 0E888H - статус клавіатури
Примітка: BASIC завжди працює з пристроєм виведення N2 (точка входу F80F). Опис підпрограм наведено далі.
Таким чином, використовуючи системні ЯП BFEB...BFFF, користувач може призначати власні пристрої введення-виводу та забезпечити старт за клавішами <Ц>+<СБР> будь-якої програми.
ПОРТИ ВВОДУ-ВИВОДУ
Для обміну інформацією із зовнішніми пристроями в комп'ютері є мікросхема КР580ВВ55, яка містить три 8-розрядних порти вводу-виводу А,В,С. Вони виведені на роз'єм "ЗОВНІШ 2" (розпаювання дивись у "Ру-
посібнику з експлуатації").Програмно до кожного порту можна звернутися за наступними адресами:
C0 порт А - тільки на висновок
C1 порт В - введення або виведення
C2 порт С - введення та виведення
C3 RS - регістр стану
Слід пам'ятати, що порт В задіяний на формування колірної палітри (дивися схему), тому при обміні інформацією через Його на екрані буде спостерігатися зміна кольорів. Порт С у комп'ютері за-
діє для введення-виведення інформації на магнітофон та для управління екранним ОЗП (рис.3). Вільними залишаються 2,3 та 5,6,7 розряди. за замовчуванням порти А,В і С(0-3) запрограмовані на висновок, С(4-7) - на введення.
Для підключення клавіатури в комп'ютері є друга мікросхема КР580ВВ55. Її адреси:
D0 порт А - висновок
D1 порт В - введення
D2 порт З - З(0-3) виведення, З(4-7) введення
D3 RS - регістр стану
Порти підключені, як показано на рис. 4. Шляхом сканування "0" на фоні одиниць (порти А і С(0-3)) визначається "стовпець" відстежує мих клавіш. Після введення (порти і С(4-7)) остаточно виявляється нанатискання клавіша за наявності "0" у певному розряді. Якщо жодна клавіша не натиснута, то вводяться всі "1".
ПІДКЛЮЧЕННЯ ПРИНТЕРА
У комп'ютері передбачено стандартне підключення принтера з паралельним інтерфейсом "ІРПР" ("IFSP"). На рис. 5 показано розпаювання роз'єму "ЗОВНІШ 2" при підключенні принтера "ROBOTRON CM 6329.01 M" з
складу комплексу "ДВК-3".
Виведення інформації проводиться наступним чином: комп'ютер опитує сигнал "ГОТОВ" від принтера. Якщо "ГОТОВ" не дорівнює "0", то комп'ютер очікує, доки буде "ГОТОВ"="0". Як тільки принтер видасть цей сигнал, комп'ютер виводить на порт А символ (у коді КОІ-7 в інвертованому вигляді), а потім сигнал "ДРУК" = "0". Після цього комп'ютер очікує переходу сигналу "ГОТОВ" від принтера до "1". При отриманні "ГОТОВ"="1", сигнал "ДРУК" переходить в "1", після чого комп'ютер готовий до видачі наступного знака, тобто. знову чекає від принтера "ГОТОВ" = "0". Цикл повторюється.
ВІДЕОКОНТРОЛЕР
порт С
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | |
| | |
| | |
читання з МЛ ----- | - Запис на МЛ
|
---- управління
екранною ОЗУ:
"1"-відключено
(за замовчуванням)
"0"-підключено
до шин МП.
Мал. 3.
-7-
порт А висновок
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | | | | | | |
--- --- --- --- --- --- --- ---
/ \ / \ / \ / \ / \ / \ / \ / \
--- --- --- --- --- --- --- ---
| | | |ПРО| | | | +5 В
--- ВР| ; | |СТР|БІЛ| П | Р | 6 |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 0 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Я | РУС | | " G " | Б | Про | Ш | 7 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 1 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ч | СУ | Й | "В" | Ю | Л | Щ | 8 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 2 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| Ь | П | Н | 5 | НР| ЗБ| ВК| ГТ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
порт | 3 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
У |---| Т | А | Е | 4 | _ | . | ПС|ТАБ| |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
введення | 4 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| І | У | До | 3 |ЛАТ| Е | * | = | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 5 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| М | Ы | У | 2 | / | Ж | Х | 0 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 6 |------*-|-*-|-*-|-*-|-*-|-*-|-*-|-*-|---| |--*
| | | | | | | | | | ---- |
|---| З | Ф | Ц | 1 | , | Д | З | 9 | |
| | .-* .-* .-* .-* .-* .-* .-* .-* ---- |
| 7 |------*---*---*---*---*---*---*---*-----| |--*
| | ----
---
порт З висновок
---------------
| 3 | 2 | 1 | 0 |
---------------
| | | |
--- --- --- --- +5 В
/ \ / \ / \ / \
--- --- --- --- |
|ЗНА| | | |
| ЧА| | | |
--- ->| ЛО | П / Д | ПЛ| |
| | .-* .-* .-* .-* ---- |
| 4 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| ВГОРУ| AS| F0 | CD| |
| | .-* .-* .-* .-* ---- |
| 5 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
введення |---| <-| ED | ЧМЛ | ЗВ. | |
| | .-* .-* .-* .-* ---- |
| 6 |----*-+-*-+-*-+-*-+---| |--*
| | | | | | ---- |
|---| Вниз| BS | ЗМЛ | "R" | |
| | .-* .-* .-* .-* ---- |
| 7 |----*---*---*---*-----| |--*
| | ----
---
Мал. 4.
-8-
--------
/\
----< ДРУК ><------------------
| \ / ------- |
| -------- | 1 | 2 | |
| |---|---| |
| | 3 | 4 | |
| |---|---| |
| | 5 |SC |---
| |---|---|
| | 7 | 8 |
| |---|---|
| | 9 |10 |
| |---|---|
| |11 |12 |
| |---|---|
----------------- | |13 |14 |
|КОНТ.| А | У | З | | |---|---|
|-----------------| | |15 |16 |
|-----------------| | |---|---|
| 1 | Z | А4 | Z |---| | |17 |18 |
|-----|---|---|---| | |---|---|
| 2 | | SC|<----------------- |19 |20 |
|-----|---|---|---| / \ |---|---|
| 3 | | АС|--------------->< ГОТОВ >----->|AC |22 |
|-----|---|---|---| \ / |---|---|
| 4 | Z | S0 | | -------- |23 |24 |
|-----|---|---|---| |---|---|
| 5 | Z | D0 | Z | |D7 |26 |
|-----|---| |---| | |---|
| 6 | | D1 ---------------------------------- D6 |28 |
|-----|---| |---|
| 7 | | D2 D5 |30 |
|-----|---| |---|
| 8 | | D3 D4 |32 |
|-----|---| <-- ДАНІ |---|
| 9 | А2 | D4 D3 |34 |
|-----|---| |---|
| 10 | Z | D5 D2 |36 |
|-----|---| |---|
| 11 | Z | D6 ---------------------------------- D1 |38 |
|-----|---| |---| | |---|
| 12 | Z | D7 | | |D0 |40 |
|-----|---|---|---| -------
| 13 | S | A0 | | |
----------------- ---
ІРПР ЗОВНІШ 2
Мал. 5.
-9-
Для відображення інформації на екрані ТБ у комп'ютері
є відеоконтролер. Розглянемо принцип відображення інформації.
На рис.6 зображено розподіл пам'яті стосовно роботи
відеоконтролера. Екранне ОЗУ займає нульову сторінку пам'яті, кото-
раю в нормальному стані відключена від шин МП, та звернення до неї
програмно неможливо. З нею працює лише відеоконтролер, який
здійснює безперервне зчитування інформації та формування відео-
сигналу.
Для виведення на екран зображення в екранну область ОЗП необхідно
занести певну інформацію. З цією метою нульова сторінка пам'яті
підключається до шин МП область адресного простору 4000-7FFF.
У цьому випадку можливе як запис так і зчитування інформації з ек-
раннього ОЗП. При цьому робота відеоконтролера не припиняється,
ня на екрані не зникає. Необхідно мати на увазі, що у випадку
підключення екранного ОЗП до шин МП відключається область ОЗП з адреси-
мі 0000-7FFF. Тому при розробці програм необхідно піклуватися про
тому, щоб програмні модулі, що обслуговують екранну ОЗУ, розміщувалися
за межами області 0000-7FFF.
Усі системні підпрограми виведення на екран розміщуються в ПЗП,
під час роботи з ними такої проблеми не існує.
Підключення екранного ОЗУ здійснюється через перший біт порту
(Рис. 3).
Кодування зображення здійснюється таким чином, що один байт
екранного ОЗУ містить інформацію про чотири пікселі зображення
(Мал. 7). Наприклад, якщо в екранне ОЗУ помістити байт 35Н, то на ек-
рані з'являться три точки, розташовані в ряд горизонтально, синього,
зеленого та червоного кольору.
Таким чином, 16 кбайт екранної ОЗУ забезпечують відображення
65536 пікселів (екран 256*256).
Весь адресний простір розбитий на 256 рядків по 64 байти
(Рис. 8):
4000-403F - 1 рядок
4040-407F - 2 рядок
4080-40BF - 3 рядок
40C0-40FF - 4 рядок
. . .
. . .
. . .
7FC0-7FFF - 256 рядок
Лінією на малюнку виділено робочу область екрану - 225 рядків по 50
байт:
4287-42B8
42C7-42F8
. .
. .
. .
7A87-7AB8
Системні підпрограми та BASIC працюють у виділеній області
200*225 пікселів. При складанні програм, в принципі, можливо вико-
зування всього простору екранного ОЗУ, але в цьому випадку немає гарантії,
що не буде втрачено частину зображення. Це пов'язано зі специфікою
розгортки у побутових телевізорах.
Кодування кольору зображення може бути розширене шляхом застосування.
ня різних палітр (див. F833). Кольори зелений, синій, червоний
ються такими тільки в тому випадку, коли встановлені 0 фон і 0 курить
ра.
-10-
----------------------------
FFFF | |
| ПЗП |
C000 | |
|----------------------------|
BFFF | |
| ОЗП |
| |
|- - - - - - - - - - - - - - |
7FFF | |
| екранне ОЗП підключено
4000 | |
|- - - - - - - - - - - - - - |
| |
| ОЗП |
0000 | |
----------------------------
----------------------------
| |
| екранне ОЗУ вимкнено |
| (0 сторінка пам'яті) |
| |
----------------------------
Мал. 6.
-------------------------------
| X | 6 | 5 | 4 | X | 2 | 1 | 0 |
-------------------------------
| |
| |
--------------------- інформація про
одному пікселі:
0...0...-фон
0...1...-B(блакитний)
1...0...-G(зелений)
1...1...-R(червоний)
3 5 ---------------
| 0 | 0 | 1 | 1 |
--------------- --------------- ---------------
| 0 | 0 | 1 | 1 | | 0 | 1 | 0 | 1 | ---> | | | |
--------------- --------------- ---------------
| 0 | 1 | 0 | 1 |
---------------
| | | |
фон B G R
Мал. 7.
-11-
403F 407F 40BF 40FF...42BF 42FF...7A7F 7ABF...7F3F 7F7F 7FBF 7FFF
403E | 7FFE
403D | 7FFD
403C 7 байт (28 пікселів) 7FFC
403B | 7FFB
403A | 7FFA
4039 ---------...--------- 7FF9
4038 | 42B8 42F8 | 7A78 7AB8 | 7FF8
4037 | 42B7 | 7AB7 | 7FF7
4036 | 42B6 | 7AB6| 7FF6
4035 | 42B5 | 7AB5 | 7FF5
4034 | 42B4 | 7AB4| 7FF4
4033 | 42B3 | 7AB3| 7FF3
4032 | 42B2 | 7AB2| 7FF2
4031 | 42B1 | 7AB1| 7FF1
4030 | 42B0 | 7AB0 | 7FF0
402F | 42AF | 7AAF| 7FEF
402E | 42AE | 7AAE | 7FEE
402D | 42AD | 7AAD| 7FED
402C | 42AC | 7AAC| 7FEC
402B | 42AB | 7AAB| 7FEB
402A | 42AA | 7AAA| 7FEA
4029 | 42A9 | 7AA9| 7FE9
4028 | 42A8 | 7AA8 | 7FE8
4027 | 42A7 | 7AA7 | 7FE7
4026 | 42A6 | 7AA6 | 7FE6
4025 | 42A5 | 7AA5 | 7FE5
4024 | 42A4 | 7AA4| 7FE4
4023 | 42A3 | 7AA3| 7FE3
4022 | 42A2 | 7AA2| 7FE2
4021 | 42A1 | 7AA1| 7FE1
4020 10 рядків | 42A0 50 байт 7AA0 | 21 рядок 7FE0
401F<--------------->|429F (200 пікселів) 7A9F|<--------------->7FDF
401E | 429E | 7A9E| 7FDE
401D | 429D | 7A9D| 7FDD
401C | 429C | 7A9C| 7FDC
401B | 429B | 7A9B| 7FDB
401A | 429A | 7A9A| 7FDA
4019 |4299 | 7A99 | 7FD9
4018 |4298 | 7A98 | 7FD8
4017 |4297 | 7A97 | 7FD7
4016 |4296 | 7A96 | 7FD6
4015 |4295 | 7A95 | 7FD5
4014 |4294 | 7A94 | 7FD4
4013 |4293 | 7A93 | 7FD3
4012 |4292 | 7A92| 7FD2
4011 |4291 | 7A91 | 7FD1
4010 | 4290 | 7A90 | 7FD0
400F | 428F | 7A8F| 7FCF
400E | 428E | 7A8E| 7FCE
400D | 428D | 7A8D| 7FCD
400C | 428C | 7A8C| 7FCC
400B | 428B | 7A8B| 7FCB
400A | 428A | 7A8A | 7FCA
4009 | 4289 | 7A89 | 7FC9
4008 | 4288 | 7A88 | 7FC8
4007 | 4287 42C7 | 7A47 7A87 | 7FC7
4006 ---------...--------- 7FC6
4005 7FC5
4004 225 рядків 7FC4
4003 <---------------------> 7FC3
4002 7FC2
4001 7FC1
4000 4040 4080 40C0...4280 42C0...7A40 7A80...7F00 7F40 7F80 7FC0
Мал. 8.
-12-
СИСТЕМНІ ПІДПРОГРАМИ
1.Введення символу з клавіатури
---------------------------
Крапка входу F803 (E800).
Після виконання код символу в КОІ-7 знаходиться в рег.
Використовуються комірки пам'яті BE1D та BE1E.
BE1D - режим клавіатури:
-------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
| | | |
| | | --1 - верхній регістр
| | ------1 - нижній регістр
| ----------1 - керуючі символи
|
|------------------------------1 - російська абетка
------------------------------0 - латинський алфавіт
Клавіші <ВР>, <НР>, <СУ> для відпрацювання певних символів мають
утримуватись у натиснутому стані. Для роботи в російській або латинській
алфавіту достатньо одноразово натиснути клавішу <РУС> або <ЛАТ>.
BE1E - FF (за замовчуванням) - звуковий сигнал увімкнений;
00 - вимкнено.
Коди клавіш, що вводяться підпрограмою F803 (та F806):
00 - G 08 - ПОЧАТОК 10 18 - ТАВ
01 - B 09 - ГТ 11 19 - ->
02 - R 0A - ПС 12 - ЗМЛ 1A - <-
03 - Звук 0B - 13 - AS 1B
04 - CD 0C 14 - ED 1C - ВВЕРХ
05 - ПЧ 0D - ВК 15 - ЧМЛ 1D - ВНИЗ
06 - П/Д 0E 16 - BS 1E
07 - FO 0F 17 1F - СТОР
Інші коди 20...7F стандартні для КОІ-7. Варто зазначити, що
коди, що відповідають функціональним клавішам, при виведенні (підпрограм-
ма F809) можуть відпрацьовувати інші функції.
Підпрограма відпрацьовує такі функціональні клавіші:
<СТР> - очищення екрану (див. п/програму F836);
< G > - очищення екрана, обнулення рамки, встановлення кольору алфавіту.
но-цифрової інформації, встановлення 0 палітри та 0 фону (див.
"Опис BASIC" табл. 1).
Після виконання підпрограми осередки пам'яті матимуть
наступні значення:
-Колір рамки на екрані: BE38 = 00 (рамки немає);
-Колір текстової інформації: BE36 = 00 (G-зелений);
-Кольорова палітра: Порт B = 8F.
<B> - те саме;
0 тло 6 палітра; значення ЯП: BE38 = 00
BE36=00
Порт B = D3;
< R > - те саме;
7 фон 3 палітри; значення ЯП: BE38 = 00
BE36=02
Порт B = BD.
Примітка: встановлення номера кольору текстової інформації
----------- BE36 - 00 (G зелений)
01 (B синій)
02 (R червоний)
який завжди відповідає дійсності, т.к. перед
виведенням на відеомонітор кольору перекодуються відповідно
із значенням конкретних біт порту B.
-13-
<ЗВУК> - увімкнення/вимкнення звукового сигналу (інверсія зна-
чення ЯП BE1E);
< CD > - увімкнення/вимкнення посторінкового виведення на екран -
для підпрограми F809 (інверсія значення ЯП BE39);
< ПЧ > - увімкнення/вимкнення принтера - для підпрограми F80F:
-принтер включений: BEF3=80, в нижній частині екрана по-
є символ "*";
-принтер вимкнено: BEF3=00, символ "*" зникає;
<СУ>+<ПЧ> - проводиться копіювання вмісту екрану на прин-
тер у графічному режимі (див. E627);
< П/Д >- увімкнення/вимкнення режиму виведення інформації на екран
та принтер - для підпрограми F80F (інверсія значення
ЯП BE1B).
2.Введення символу з клавіатури без відпрацювання службових клавіш
-------------------------------------------------- --------
Крапка входу F806 (E843).
Код введеного символу в реєстр. A.
Використовується службова ЯП BE1E (див. F803).
При натисканні однієї зі службових клавіш <СТР>, <G>, <B>, <R>, <ЗВУК>,
<CD>, <ПЧ>, <П/Д> підпрограма формує тільки код клавіші, ніяких
особливих функцій не відпрацьовує.
При зверненні до підпрограми F803 або F806 комп'ютер знаходиться в системі
таянні очікування доти, доки не буде натиснута якась клавіша;
програмно реалізований захист від брязкальця контактів. Відображення сім-
вола натиснутої клавіші не виконується.
3.Виведення символу на екран
------------------------
Крапка входу F809 (DF68).
Перед зверненням код символу в КОІ-7 необхідно занести до реєстру. З.
Для завдання режиму виведення використовуються ЯП:
BE36 - 00 (G зелений) колір текстової інформації,
01 (B синій),
02 (R червоний);
BE39 - 00 (за замовчуванням) режим безсторінкового введення,
FF виведення інформації посторінково;
BE3C - 00 (за замовчуванням) видимий курсор,
FF невидимий курсор.
Для користувача може представляти інтерес інформація, що генерує-
травня підпрограмою F809:
номер позиції у рядку - BE32,
номер рядка – BE33.
Це координати курсору після відпрацювання F809 або координати наступного
символ при багаторазовому зверненні до F809.
Необхідно відзначити, що не слід використовувати BE32 та BE33 для
прямий адресації курсору, т.к. для відстеження позицій символів вико-
користуються та інші ЯП, значення яких мають бути пов'язані з BE32
та BE33. Для прямої адресації курсору слід користуватися підпрограм-
мій F82D.
Підпрограма F809 робить висновок символу на нульовому фоні. Ось
чому нерідко можна спостерігати, як виведення текстової інформації по гра-
фіці йде у "своєї" кольоровій доріжці. Це необхідно враховувати при ра-
робота з текстами та графікою.
Для кодів 20...7E підпрограма виводить на екран стандартні сім-
воли КОІ-7.
Для коду 7F відпрацьовується функція "ЗАБІЙ" - знищується послід-
ний символ, курсор на позицію назад.
Код 1F – зображення курсору.
0A – переклад рядка, 0D – повернення каретки. Коди 0A, 0D та 0A+0D
відпрацьовуються однаково - переведення курсору на початок наступного рядка
на екрані. Якщо всі 24 рядки вже заповнені, то при BE39 = FF (постранич-
ний висновок) підпрограма очікує натискання будь-якої клавіші, після чого про-
зводить підйом інформації на один рядок вгору. Якщо BE39=00, то під'-
ним тексту та виведення інформації триває без очікування натискання клавіші.
Службові коди 00...1E, крім 0A-ПС та 0D-ВК, відпрацьовуються як
пробіл.
-14-
4. Пряма адресація курсору
--------------------------
Крапка входу F82D.
Вхідні параметри:
BE3E - (00...1F) номер позиції у рядку;
BE3F - (00...17) номер рядка;
BE3D - 00 курсор видимий,
FF невидимий.
Стирається зображення курсору в "старій" позиції, встановлюються не-
необхідні значення у службових ЯП, у тому числі:
позиція у рядку – BE32;
номер рядка – BE33.
Вміст ЯП BE3D переписується в BE3C (видимість курсору).
5. Виведення тексту на екран
-----------------------
Крапка входу E4A4.
Перед зверненням до підпрограми адресу початку тексту необхідно занести
ти в реєстрову пару HL. Приклад:
BAS: LXI H,0E067H
CALL 0E4A4H
RET
Після звернення до підпрограми "BAS" на екрані з'явиться текст:
BASIC 2.0 ПК-01 'ЛЬВІВ'
Текст розміщується у пам'яті від молодших адрес до старших у кодах КОІ-7,
ознакою кінця тексту є код 00. Підпрограма E4A4 реалізована
за допомогою F809.
6. Виведення на екран вмісту рег. А у 16-річному форматі
-------------------------------------------------- -----
Крапка входу FFD6.
На екрані відображається 16-річний код акумулятора. Використовую-
ється підпрограма F809.
7.Виведення на екран вмісту регістрової пари HL у 16-річному
-------------------------------------------------- ----------
форматі
-------
Крапка входу FFD1.
Використовується підпрограма FFD6.
8.Виведення символу на принтер
--------------------------
Крапка входу F80C (E236).
Перед зверненням код символу занести до рег. З.
Режим виведення задається:
BE41 - B8 (за замовчуванням) виведення у 7-розрядному коді з інверсією;
00 висновок у 8-розрядному коді з перекодуванням символів
російський алфавіт без інверсії.
Підключення принтера наведено на сторінці 4.
9.Виведення символу на екран та на принтер
-------------------------------------
Крапка входу F80F (E222).
Код символу занести до рег. З.
Режим задається в ЯП BEF3 та BE1B:
---------------------------------
| значення ЯП | |
|-------------| ЕКРАН | ПРИНТЕР |
| BEF3 | BE1B | | |
|------|------|---------|---------|
| 80 | 00 | включений | включений |
|------|------|---------|---------|
| 80 | FF | вимкнено| включений |
|------|------|---------|---------|
| 00 | 00 | включений | вимкнено|
| 00 | FF | | |
---------------------------------
-15-
10. Висновок на принтер графічної інформації
------------------------------------------
Крапка входу E627.
Виводиться вміст екранного ОЗП на принтер в графічному
режимі. При виведенні кольорове зображення перекодується в чорно-біле,
на папері друкується кадр 256*256 пікселів. Принтер повинен мати гра-
режим і формат керуючих символів, сумісний з EPSON, на-
приклад, ROBOTRON СМ 6329.01 М. Якщо все зображення друкувати не треба,
то висновок можна припинити, натиснувши клавішу <Вниз>.
Підключення принтера аналогічно F80C та F80F.
11. Статус клавіатури
--------------------
Крапка входу F812 (E888).
Підпрограма визначає чи натиснута якась клавіша і завершується
незалежно від стану клавіатури. Результат після повернення з під-
програми:
--------------------------------------------------
| стан | вміст |ознак| знак |перенесення|
клавіатури | акумулятора | нуля "Z" | "S" | "Q" |
|-----------|------------|-------|---------|------ -|
|кл. натиснута | FF | 0 | 1 | 1 |
|кл. віджата | 00 | 1 | 0 | 0 |
--------------------------------------------------
12. Обчислення контрольної суми
-------------------------------
Крапка входу F815.
Перед зверненням необхідно занести до реєстрової пари
HL - початкова адреса масиву,
DE - кінцева адреса.
Обчислену контрольну суму підпрограма виводить на екран у 16-річний
ном форматі. Використовуються підпрограми FFD1 та FFD6.
13. Очищення екрану
-----------------
Точка входу F836.
Вхідні параметри:
BE38 - 00 рамки немає
0F B-блакитна рамка
F0 G-зелена рамка
FF R червона рамка.
Підпрограма заповнює екранне ОЗУ кодом із ЯП BE38, потім заповнює
робоче поле екрана (200*225 пікселів) кодом 00 і встановлює курсор
верхній лівий кут робочого поля. Вказаний колір рамки - поняття від-
носійне, справжні кольори залежить від конкретних значень біт порту B.
14. Очищення екранного ОЗУ
------------------------
Точка входу EBBC.
Підпрограма заповнює все екранне ОЗУ кодом із ЯП BE38 (див. F836).
15. Очищення робочого поля екрана
-------------------------------
Крапка входу EBA5.
Підпрограма заповнює область екранного ОЗУ, що відповідає
му полю 200*225 пікселів, кодом 00.
16.Курсор на початок екрану
-------------------------
Крапка входу EBE4.
Видимість курсору задається в ЯП BE3C (див. F809).
Примітка: перед зверненням до підпрограм EBBC, EBA5, EBE4 необхо-
----------- мо підключити екранне ОЗУ до шин МП
MVI A, 0
OUT 0C2H
після звернення – відключити
MVI A,02
OUT 0C2H
-16-
17.Короткий звуковий сигнал
---------------------------
Крапка входу F81B.
Аналогічно дії оператора "BEEP" у BASIC.
18.Музичний сигнал
---------------------
Крапка входу F81E.
Видається меандр із заданим періодом та тривалістю. Перед зверненням
до підпрограми задати у реєстр. L код частоти,
у реєстр. D тривалість сигналу.
Коди частоти для різних нот дивись у "Опис BASIC" табл. 2 (ана-
логічно "SOUND" у BASIC).
19. Переміщення масивів
-----------------------
Крапка входу E11F.
Підпрограма копіює вміст пам'яті з однієї області до іншої.
Вхідні параметри:
HL - початкова адреса, куди копіювати,
DE - початкова адреса копіюваного масиву,
BC – довжина масиву.
20.Заповнення області пам'яті кодом
----------------------------------
Крапка входу E12A.
Підпрограма заносить у виділену область пам'яті заданий код.
Вхідні параметри:
реєстр. E - код заповнення,
HL - початкова адреса,
BC – довжина масиву.
ГРАФІКА
-------
Комп'ютер працює з графікою у виділеному полі 200*225 пікселів.
По горизонталі координата X (200 пікселів), по вертикалі - Y (225 пікселів).
Початок відліку координат – лівий верхній кут робочого поля.
При зверненні до підпрограм, що підтримують графіку, необхідно
димо піклуватися про те, щоб параметри X і Y не виходили за установку
лені межі. В іншому випадку проводиться звернення до підпро-
грамі 065C, яка видає повідомлення про помилку і передає управлі-
ня в BASIC. Якщо в ОЗУ завантажена інша система, то слід за адресою.
су 065C помістити підпрограму обслуговування помилок під час роботи з гра-
фікою.
1.Вивод точки на екран
----------------------
Точка входу F821.
Вхідні параметри:
BE50 - координата X (00 ... C7),
BE51 - координата Y (00 ... E0),
BE52 - колір (00-фон,
01-"G",
02-"B",
03-"R").
2.Стирання точки
----------------
Крапка входу F020.
Вхідні параметри:
BE50 - координата X,
BE51 – координата Y.
Рівноцінна за дією F821 із BE52=00.
-17-
3.Лінія на екран
----------------
Крапка входу F824.
Вхідні параметри:
BE50 - X початкове,
BE51 - Y початкове,
BE52 - колір,
BE57 - X кінцеве,
BE58 - Y кінцеве.
4. Прямокутник
---------------
Крапка входу F827.
Вхідні параметри ті ж, що й у F824. Виводиться прямокутник, сто-
рони якого паралельні сторонам рамки, а розмір і положення зада-
ються діагоналлю, як відрізок F824.
5.Зафарбований прямокутник
---------------------------
Крапка входу F82A.
Вхідні параметри ті ж, що й у F827.
6.Кольорова палітра
------------------
Точка входу F833.
Вхідні параметри:
BEC0 - номер палітри,
BEC1 – номер фону.
Підпрограма для вказаних фону та палітри виводить у порт В встановлений-
ну кодову комбінацію (N фону та N палітри, дивись у "Опис BASIC"
табл. 1).
-18-
ДОДАТОК 1
Перелік скорочень
МП – мікропроцесор
ОЗП - оперативний запам'ятовуючий пристрій
ПЗУ - постійний пристрій, що запам'ятовує
Реєстр. - Регістр МП КР580ІК80: A, B, C, D, E, H, L
ЯП - осередок пам'яті
Вы здесь » Середовище програмування MADL » Архів (чернетки) » Чернетка. Переклад.ПЕРСОНАЛЬНА ЕОМ ПК-01