Приступая к работе
 
Это хорошее введение в FB для программистов QBasic, основанное на учебнике SJ Zero.

Начало работы с программным обеспечением

Вы можете скачать FreeBASIC здесь: http://www.freebasic.net/index.php/download
А FBIDE здесь: http://fbide.sourceforge.net/

При установке FBIDE, выберите "FBIDE only", чтобы не устанавливать старую версию FB, включенную в этот пакет.
При запуске FBIDE первый раз, вам придется найти компилятор FB на вашем компьютере.

Hello World!

Откройте FBIDE и введите следующее:

 PRINT "Hello World!"
 SLEEP

Поздравляем, вы только что собрали программу так же как в QB. Теперь вы можете использовать большинство консольных команд как в QB, надеюсь вы их помните :) . Например:

 LOCATE 10,10
 PRINT "I'm the center of the universe!"
 SLEEP

Удивительный Screen 13

Теперь поставьте "SCREEN 13" в ваш код, чтобы увидеть, как легко можно использовать графические режимы:
 SCREEN 13
 PRINT "Hello World!"
 SLEEP

Все стандартные графические QB команды работают , как вы можете видеть в этом примере:

 SCREEN 13
 LINE (1,1)-(100,100),1,bf
 PRINT "Hello World!"
 CIRCLE (10,10),10,2
 PSET (30,15),3

 SLEEP

FreeBASIC также имеет новые возможности графики. К примеру QB никогда не имел SCREEN 14 или больше. Попробуйте запустить эту программу:
 SCREEN 15
 LINE (1,1)-(100,100),1,bf
 PRINT "Hello World!"
 CIRCLE (10,10),10,2
 PSET (30,15),3

 SLEEP

После открытия графического окна с помощью команды SCREEN, вы можете также нажать ALT-ENTER для переключения между оконным и полноэкранным режимами.

Еще одной приятной особенностью библиотеки графики в FreeBASIC является то, что вы можете сделать переключения страниц в любом режиме видео. Следующий код демонстрирует это:

 DIM as integer page
 DIM as integer notpage
 DIM as integer a, b


 screen 12, , 2 'Это устанавливает screen с 2 страницами
 notpage = 1   'Это устанавливает заднюю страницу

 DO
  IF page = 0 THEN page = 1 ELSE page = 0   'Эти две вспомогательные линии для переключения страниц
  IF notpage = 1 THEN notpage = 0 ELSE notpage = 1 'задняя страница
	
  SCREENSET page, notpage 'Это переключение страниц
	
  CLS  'Сначала мы очищаем экран
  b = b + 1 
  IF b > 100 THEN b = 0
  FOR a = 1 TO 128
   PSET (b,a),a 'Затем мы рисуем линию. Она движется без мерцания.
  NEXT a
  
 LOOP UNTIL INKEY = CHR(27)

Это работает для любого режима, так что вы можете использовать режимы с высоким разрешением для ваших программ с переключением страниц, используя стандартные QB графические команды!


Почему ASM больше не требуется

Я бы не говорил это, если бы это не было правдой. Использование ASM в BASIC для увеличения функциональности программы больше не требуется. Даже если на минуту проигнорировать такие библиотеки как SDL, Allegro, DirectX, OpenGL,  и др., вы поймете , что у вас есть великолепные графические режимы, а также Inkey, который мы все любили или ненавидели. Но есть также две новые команды ввода, которые делают те же вещи, которые писал QBers , используя ASM код в незапамятные времена:

 DIM as integer x, y, buttons
 CONST as integer escapeKey = 1
 SCREEN 12

 WHILE NOT MULTIKEY(escapeKey) 'Это проверяет клавишу ESCAPE каждый кадр
  GETMOUSE x, y, , buttons 'Это получает состояние мыши 
  PRINT x,y,buttons   
 WEND

Зная это, вы должны быть способны начать программировать в FreeBASIC, со всеми возможностями, которые оно дает; Скорость, мощность и мобильность!