Call Interrupt ???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Call Interrupt ???

Сообщение Шурик » 28.06.2005 (Вт) 13:18

вопрос по TurboBasic :)
есть вот такой код:
Код: Выделить всё
AX=1:BX=2:CX=3:DX=4....
...
mode=7 'видеорежим, правда не помню какой надо для 320х200х256
Reg AX, mode
Reg ??,??
Reg ??,??
Call Interrupt &H10 'прерывание видюхи
...

вместо знаков вопросов должны быть значения, чтобы на экране отобразился пиксель с заданым цветом. Единственное, что я помню, что в координате используеца только одно число по X, а Y выщитываеца из него.
Помогите пожалуйста!!!
Всем спасибо!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.06.2005 (Вт) 14:52

Хм... А разве SCREEN 13 не работает в TB?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2005 (Вт) 19:16

TB - не оффтопик?

А вообще, наверное надо так:
Код: Выделить всё
mode=&h13 'видеорежим, который надо для 320х200х256
Reg AX, mode
'остальные регистры не используются
Call Interrupt &H10 'прерывание BIOS, а совсем даже не видюхи
Изображение

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 29.06.2005 (Ср) 11:14

alibek писал(а):Хм... А разве SCREEN 13 не работает в TB?

его там никогда не было.... :)

tyomitch это все понятно, но проблема так и не решилась(((
(спасибо за подсказку))))))))

появился еще вопрос. как разложить AX на старший и младший байты (помоему так написал :oops: не поню как все это называеца вроде Ah и Al) соответственно на ТВ. Ели вобще такое возможно :?

ЗЫ извиняйте за офф

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 14.07.2005 (Чт) 0:59

tyomitch писал(а):TB - не оффтопик?

А вообще, наверное надо так:
Код: Выделить всё
mode=&h13 'видеорежим, который надо для 320х200х256
Reg AX, mode
'остальные регистры не используются
Call Interrupt &H10 'прерывание BIOS, а совсем даже не видюхи


А вот &h10 это как раз и есть видюха!!! в смысле её VGA часть. А &h13 это винт.По моему первый контроллер IDE. В винде всё это ненадо!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.07.2005 (Чт) 2:35

NIC, 1) не тормози. int10 использовался ещё в IBM PC, где никаких процессоров в видюхе не было. Это прерывание BIOS. И int13 - тоже прерывание BIOS.
2) не тормози. Винда тут не при чём. Просто Шурик решил задать оффтопичный вопрос не в Народном Трёпе, а здесь.

Шурик, наверное AL = AX MOD 256: AH = AX \ 256, да?
Изображение

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 14.07.2005 (Чт) 8:57

tyomitch писал(а):NIC, 1) не тормози. int10 использовался ещё в IBM PC, где никаких процессоров в видюхе не было. Это прерывание BIOS. И int13 - тоже прерывание BIOS.
2) не тормози. Винда тут не при чём. Просто Шурик решил задать оффтопичный вопрос не в Народном Трёпе, а здесь.

Шурик, наверное AL = AX MOD 256: AH = AX \ 256, да?


надо проверить, спасибо :)
завтра скажу)))

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 14.07.2005 (Чт) 9:02

Стоп, стоп!!! Я так понял это AX раскладываем на старшой младшой быйты. Темыч, а какже их применить, там ведь регистр AX используеца, а вот как использовать старший и младшие байты я чето не могу даже представить...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 14.07.2005 (Чт) 10:24

High - AH
Low - AL

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.07.2005 (Чт) 11:27

Шурик писал(а):а какже их применить, там ведь регистр AX используеца, а вот как использовать старший и младшие байты я чето не могу даже представить...

Ничего не понял. Куда ты их применяешь? Неужели внутрь? ;-)
Изображение

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 14.07.2005 (Чт) 12:19

:D втираю))))
в ТБ есть команда REG она записывает в регистр значение:

Код: Выделить всё
AX=1
REG AX,&H13
CALL INTERRUPT &H10


прально??? прально...
в этом примере можно только регистру AX присваивать значения, а как это провернуть с его составными, т.е. старшым и младщим байтами???

вобщем чтоб было так примерно :)
Код: Выделить всё
AH=1
REG AH, &H13
CALL INTERRUPT &H13

соответственно ТБ пофиг на название переменной :) он все равно будет пихать в регистр АХ...
проще говоря мне нужна команда которая будет писать значения в AH и AL, а не в регистр АХ!!!
наверно понятно написал)))))

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.07.2005 (Чт) 12:21

Нет, непонятно.
Если тебе нужна только часть регистра, то только часть и устанавливай -- OldValue Or LowPart или OldValue Or (HiPart * 256).
Lasciate ogni speranza, voi ch'entrate.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 15.07.2005 (Пт) 9:11

:D
в ТБ есть оператор который в регистр пишет значение, а мне нужен оператор который бы писал отдельно в AH и отдельно AL :)
вот)))))))

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.07.2005 (Пт) 11:16

Наводящий вопрос...
А в ТБ есть оператор, возвращающий значение AX?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 15.07.2005 (Пт) 11:21

функция, тожа REG :)

Код: Выделить всё
AX=1
value=Reg AX
....

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.07.2005 (Пт) 11:34

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 15.07.2005 (Пт) 11:35

ээээээ... не поняль???

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.07.2005 (Пт) 11:44

alibek писал(а):OldValue Or LowPart или OldValue Or (HiPart * 256).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 15.07.2005 (Пт) 12:00

аааа.... :D попробую)))


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 26

    TopList  
cron