Примеры программ на языке QBASIC


DATA &H60, &H1E, &H0E, &H1F, &HA1, &H18, &H00, &HCD, &H33, &H89
DATA &H1E, &H1A, &H00, &H89, &H0E, &H1C, &H00, &H89, &H16, &H1E
DATA &H00, &H1F, &H61, &HCB

DIM IntProg(1 TO 16) AS INTEGER
DEF SEG = VARSEG(IntProg(1)): 'установка сегмента для работы подпрограммы
Int33& = VARPTR(IntProg(1)): 'установка смещения для работы подпрограммы
'Перепись подпрограммы из блока данных в массив побайтно
FOR j% = 0 TO 23
  READ K%: POKE IntDos& + j%, K%
NEXT j%
'Роспись экрана линейками через строку
CLS
COLOR 7, 1
FOR I = 1 TO 11
FOR j% = 0 TO 79
  PRINT USING "#"; j% MOD 10;
NEXT j%
  PRINT : PRINT
NEXT I
COLOR 7, 0
IntProg(13) = 0: 'Подфункция сброса драйвера мыши
CALL ABSOLUTE(Int33&)
LOCATE 2, 1
IF IntProg(13) = -1 THEN PRINT "Работает драйвер MS-DOS  ";
PRINT "Число кнопок = "; IntProg(14);
SLEEP 5
IntProg(13) = 1: 'Подфункция визуализации курсора на экране
CALL ABSOLUTE(Int33&)
IntProg(13) = 3: 'Подфункция опроса состояния мыши
'15:CX=x 16:DX=y 14:BX=состояние кнопок:
'1 - нажата левая, 2 - правая, 4 - средняя
FOR j% = 1 TO 60
  CALL ABSOLUTE(Int33&)
  LOCATE 4, 1
  PRINT USING "x=### y=### кнопка #"; IntProg(15); IntProg(16); IntProg(14)
  SLEEP 1
NEXT j%
LOCATE 6, 1: PRINT "Цикл окончен. Нажмите любую клавишу"
SLEEP
DEF SEG
END
к оглавлению   QBASIC