Microsoft created GW-BASIC version 3.23 in 1987 and that was the last official, commercial one. It is unsurprisingly unsupported, but still under copyright so it can’t be sold or distributed without permission.
gwbasic.exe.zip: GW-BASIC executable for DOS
gw-man.zip: GW-BASIC manual; official documentation and full command reference
gw-man.pdf: GW-BASIC User’s Guide and Reference for Kindle and other e-readers
Thomas Shaffner released Microsoft GW-BASIC User’s Guide and User’s Reference to the web and you can easily find copies of it.
GW-BASIC on Windows 7+
aka “Where do I download GW-BASIC for Windows 7, 8, 10 … ?”
GW-BASIC was last released in 1988 as you can see from any screenshot of its start screen. It’s a 16-bit DOS executable that uses processor instructions no longer supported in modern, 64-bit CPU’s / operating systems. Simply put: GW-BASIC.EXE cannot run directly on Windows!
Don’t lose hope, because this is where emulators come in.
DOSBox is the premier DOS emulator with the best support and works on multiple platforms. You’ll just need a passing knowledge of DOS and how a filesystem works, but otherwise running in an emulator is straight forward, like running a virtual PC from ye olden times inside your fancy new toy.
Carlos Vazquez adds: The closest thing there is to a 64 bit gw basic is qb64 (a 64 bit clone of quick basic) i havent tested if qb64 runs gwbasic programs (quickbasic could run them and even save them in binary form) (QB64)
Compiling GW-BASIC Programs
aka “How to convert gw-basic programs to exe extension?”
What you’re talking about is compiling the BAS file to an executable.
There are three immediate and essentially free options:
BASCOM is a program intended to compile BAS to EXE for BASICA, IBM’s version of BASIC for DOS and the precursor to GW-BASIC. It will handle both the binary and ASCII format BAS files and supports pretty much everything except EGA (certain SCREEN modes).
QuickBASIC 4.5 is the direct successor to GW-BASIC and can handle probably 95% of all GW-BASIC programs with the exception of those that rely on more esoteric features.
FreeBASIC has little development going on but it theoretically handles almost all QB programs and so will handle GW-BASIC programs as well.
Backstory: I keep seeing this question, asked on Yahoo! Answers, come up in search results. It’s two years too late and the question is set to resolved, but I had to add some more information.
GW-BASIC 3.23, The Last Official Release
Microsoft created GW-BASIC version 3.23 in 1987 and that was the last official, commercial one. It is unsurprisingly unsupported, but still under copyright so it can’t be sold or distributed without permission.
gw-man.pdf: GW-BASIC User’s Guide and Reference for Kindle and other e-readers
QBASIC.EXE in OLDDOS.EXE
Microsoft OLDDOS.EXE contains QBasic (which can run most GW-BASIC programs saved as ASCII) and several other “old DOS” utilities.
PC-BASIC 3.23
GW-BASIC for modern incarnations of Windows and Linux? Yes! Here is an email from the project’s creator Rob.
Hi, I thought you might enjoy my newly released project PC-BASIC 3.23.
It’s essentially an open source clone of the GW-BASIC 3.23 interpreter; since it’s python-based, it runs on most OSes including Windows and Linux.
It is largely feature complete (including sound, graphics, file I/O, and loading and saving ‘protected’ programs) though still under active development. Have fun!
SilverLight BASIC Interpreter
You can play with the work-in-progress version at http://www.addressof.com/basic/
For the most part, all keywords that are not machine language specific should be working to one degree or another. All graphics modes circa GW-BASIC should be working as well. You can drag/drop .BAS files directly to the editing surface to ease getting something up and working right away. All files are stored in your browser sand-box. Contact the author, Cory Smith, directly by visiting http://addressof.com.
BASIC-80 Interpreter for Windows
basic-80.zip: This comes from the pleasant Steve Pagliarulo who has graciously given me permission to attach a copy of this wonderful software he has developed. If you have any comments or questions, you can email him at s_pagliarulo AT hotmail.com.
I too share your fondness of GW-BASIC and its father BASIC-80. I got my start on a TRS-80 with Microsoft’s LEVEL II BASIC. In any case, I’d like to share with you my BASIC-80 compatible interpreter that I finished late last year. It’s very close to GW-BASIC but without the graphics commands. It can also load/run many GW-BASIC programs.
I’ve been fooling with the interpreter for about 10 years. I finally finished it because when I moved to 64-bit Windows, the 16-bit GW-BASIC .exe is no longer spported. The interpreter is about 20 thousand lines of C++ code. It is portable for the most part. Some of the OS specific APIs have to be changed for other platforms. For right now, I have it working as a 32-bit .exe on Windows. I’m thinking of porting it next to Raspberry pi.
I’ve attached a link to a zip file with BASIC.EXE interpreter and a few sample programs including a chess program writthn for GW-BASIC. Unlike GW-BASIC, this interpreter does not have a full-screen editor. It uses the original editor from BASIC-80. To edit a line you have to use the EDIT command.
GW-BASIC vs FreeBASIC
There are, I’m finding, significant differences between GW-BASIC and FreeBASIC. For the first, you actually have to specify -lang deprecated in order to even support line numbers. So the compatibility goal of FreeBASIC being equivalent to QBasic is immediately suspect. What I’m looking for is a compiler to create modern operating system executables (Windows XP+, Ubuntu, OS X, etc.) with full support for GW-BASIC’s language, or even QB.
KEY OFF not supported, for obvious reasons. QB ignores this command but FBC (FreeBASIC compiler) blows up with an error. If I can’t tell it to ignore certain statements then right away I have to fork my code for a FBC version.
KEY (#) ON/OFF and ON KEY (#) GOSUB not supported. This is really annoying, but I already made changes to support INKEY$ polling in QB so that will supposedly work in FreeBASIC.
DEF FNname() not supported. You can create full-blown functions but not simple one-liners in the GW style. For me this is another indication I’ll have to fork. I don’t think this would be difficult for them to implement, perhaps I’ll post it on their forum.
EXTERR() not supported. I’m not using this, but how hard would it be to support?
GOSUB # … RETURN doesn’t work unless you specify “-lang qb”. The line number support can be enabled with “-lang deprecated” and yet if you try to call RETURN it reports “Illegal outside blah blah blah or SUB block”.
SCREEN() isn’t supported. For this I don’t mean the routine to switch screen modes but rather the function that returns the value at a location in the text screen buffer. It seems to think I’m declaring a variable by this name.
Perhaps the FreeBASIC team would be interested in fixing these, though probably not. Development appears to have slowed down and why would support extend so far back? Still, I wish there was something I could use without having to roll my own (which I’m considering).
ОПЕРАЦИОННЫЕ СИСТЕМЫ DOS IBM PC DOS MS-DOS SDK DR-DOS FreeDOS Сборки на базе DOS Расширители DOS Другие платформы OS/2 SDK Windows Windows 1.x-3.x Патчи и дополнения к Win1.x-3.x Windows 9x Патчи и дополнения к Win9x Windows NT Патчи и дополнения к WinNT+ Сборки на базе Windows SDK Linux/Unix СР/М Другие операционные системы Загрузочные диски Готовые образы операционных систем Многозадачные оболочки Системные программы Твикеры Русификаторы Утилиты Оборудование Работа с CD/DVD Инсталляторы Системные Инструменты Turbo Pascal Pentium II DIV BUG fixing Прочее Замедлители Тесты оборудования и системы Обновления Драйверы Звук Видео Мыши CD/DVD Клавиатура Принтеры USB Сеть Память Материнские платы Периферия Другое OS BuildList
ЭМУЛЯТОРЫ И СИМУЛЯТОРЫ Консоли Эмуляторы компьютеров Инструменты для эмуляторов
ПРОГРАММИРОВАНИЕ Assembler Disassembler Pascal/Delphi C/C++ Basic/Visual Basic Фортран SDK & DDK, etc. Декомпиляторы Форт Генераторы блок-схем Отладчики программ (DEBUGGERs) Другие языки программирования
BIOS, прошивки
ДИСКИ И ФАЙЛЫ Файловые менеджеры Каталогизаторы Копировщики Поиск файлов, текста, байтов Сканирование каталогов Архиваторы EXE-упаковщики EXE-распаковщики Восстановление информации и резервное копирование (бэкап) HDD-утилиты Дискеты Разное
СУБД
ОФИС Интегрированные программные пакеты Издательские системы Электронные таблицы Редакторы текста Редакторы HTML Утилиты для работы с текстом OCR — распознавание текста Просмотр документов Печать Перекодировка Сравнение текстов Шрифты Работа со шрифтами Словари и переводчики Правописание Органайзеры Создание презентаций Бизнес Разное
ОБРАЗОВАНИЕ И НАУКА Информатика Инженерное ПО Расчётные задачи Пар и вода ЧПУ САПР Механика — моделирование 2D/3D AutoCAD и утилиты для AutoCAD’а Строительство Электроника, радио- и электротехника Тестирование знаний и навыков Обучающие программы Музыка Математика Калькуляторы Эмуляторы калькуляторов Физика Химия Электроника и электротехника Астрономия Астрология География и картография Биология и медицина Психология История и политология Лингвистика Гаданье на кофейной гуще Справочники разные
БЕЗОПАСНОСТЬ Антивирусы Шифры и пароли
ИНТЕРНЕТ И СЕТИ Браузеры Почтовые клиенты IM-меседжеры Звонилки FTP BBS и FIDO Работа с СОM/LPT LAN Удалённое управление Факсы Разное
МУЛЬТИМЕДИА Графика Просмотр графики Редакторы графики Грабберы графики Конвертеры Звук и видео Проигрыватели (плееры) аудио и видео Редакторы аудио и видео Грабберы (захват) аудио и видео Синтез речи Конвертеры Разное
РАБОЧИЙ СТОЛ Календари Часы Напоминалки Скринсейверы DEMO Программы-шутки Разное
АНДЕРГРАУНД Hack tools Крякеры CRK-утилиты Генераторы лоадеров (Loader generators) Патчи, коды Стеганография Шестнадцатеричные редакторы Вирусы
РАЗНОЕ
ФЕЙКИ, ПОДДЕЛКИ, ХИМЕРЫ
—НА УДАЛЕНИЕ
КАК ЗАГРУЖАТЬ ФАЙЛЫ НА Old-DOS
GW-BASIC
Описание
Информация
GW-BASIC — это диалект языка программирования Бейсик, разработанный компанией Microsoft на основе диалекта BASICA и первоначально предназначавшийся для компании Compaq. Он является совместимым с выпускавшимся Microsoft и IBM BASICA, но не требует наличия в ПЗУ компьютера интерпретатора BASIC (имевшегося на ранних моделях персональных компьютеров IBM). Поставлялся с операционной системой MS-DOS для IBM PC-совместимых компьютеров. Также Microsoft продавала компилятор Бейсика BASCOM, совместимый с GW-BASIC, для приложений, требовавших большей скорости исполнения. Язык мог применяться для простых игр и программ ведения делопроизводства, и поскольку он поставлялся с большинством версий MS-DOS, он нередко становился первым языком, с которым сталкивался будущий программист. С выходом MS-DOS 5.0, GW-BASIC был заменён на QBasic, урезанную версию продававшегося Microsoft компилятора QuickBASIC.
Среда разработки GW-BASIC основана на командной строке, напоминающей Dartmouth BASIC. Часто используемые операторы доступны через функциональные клавиши, их значения отображаются внизу экрана. В GW-BASIC отсутствовали многие возможности структурного программирования, такие как локальные переменные и некоторые виды циклов, программы интерпретировались и потому выполнялись довольно медленно.
Все строки программы нумеровались. Вводимые ненумерованные строки исполнялись немедленно. По умолчанию, программы сохранялись в двоичном сжатом формате файла с заменой команд языка на идентификаторы, возможна была также запись в простой текстовой форме.
Имелась возможность использования джойстиков, мыши и светового пера. Предоставлялась возможность чтения-записи из файлов и COM-портов. Операции с кассетами не поддерживались. GW-BASIC мог воспроизводить простые мелодии через динамик компьютера с использованием операторов PLAY и SOUND; поддерживались звуковые возможности компьютера Tandy 1000, воспроизводившего трёхканальный звук.
Исходники GW-BASIC можно скачать тут: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=7032 Или тут: https://github.com/microsoft/GW-BASIC
Раздел: Basic/Visual Basic GW-BASIC 2.02 под Windows XP Скриншоты Операционная система: MS-DOS Требования: IBM PC Автор: Microsoft [www]Издатель: —
Доступные файлы — сортировка по имени и версии, времени добавления Файлов: 18.
Файл
Размер
Выпуск
Версия
Язык
Качество
Загрузил
GW-BASIC
2208
58.3 Кб
1987
3.22
Английский
SR
GW-BASIC
802
47.3 Кб
1984
2.02
Английский
SR 2011.09.26
GW-BASIC
629
54.3 Кб
1986
3.20
Английский
SR 2011.09.27
GW-BASIC
598
46.3 Кб
1984
2.01 TeleVideo Corporation
Английский
SR 2011.09.28
GW-BASIC
947
55.1 Кб
1988
3.23
Английский
SR 2011.09.29
GW-BASIC 2.00 Olivetti
561
49.6 Кб
1984
2.00
Английский
Login 2011.11.03
GW-BASIC 2.01 Olivetti
500
50.4 Кб
1984
2.01
Английский
Login 2011.11.03
GW-BASIC 2.02 Bondwell
488
49.8 Кб
1986
2.02
Английский
Login 2011.11.03
GW-BASIC 2.02 Commodore
520
48.6 Кб
1985
2.02
Английский
Login 2011.11.03
GW-BASIC 2.02 Tandy 1000
492
50.7 Кб
1984
2.02
Английский
Login 2011.11.03
GW-BASIC 3.11
756
242.3 Кб
1986
3.11
Английский
Login 2011.11.03
GW-BASIC 3.20 Hyundai
528
60.4 Кб
1987
3.20
Английский
Login 2011.11.03
GW-BASIC 3.20 Olivetti
486
59.3 Кб
1986
3.20
Английский
Login 2011.11.03
GW-BASIC 3.20 Tandy 1000
497
57.2 Кб
1986
3.20
Английский
Login 2011.11.03
GW-BASIC 3.21 IBM
764
51.7 Кб
1987
3.21
Английский
Login 2011.11.03
GW-BASIC 3.22 Olivetti
849
60.2 Кб
1987
3.22
Английский
Login 2011.11.03
GW-BASIC MANUAL
1640
331.5 Кб
3.23
Русский
Nika 2013.10.12
Русский перевод руководства от Микрософт в формате .CHM.
GW-BASIC
1373
168.4 Кб
Английский
zhasmin 2014.08.31
Самая последняя версия GW. Поддерживает больше графических режимов. Прилагается большая русская документация.
Комментарии
#1 Автор: dzeon (2013.10.29 12:31)
Выход в систему командой system на неё я наткнулся случайно пол дня репу чесал. Кстати из консоли писать веселее чем в qbasic я себе поставил его на все свои компы использую как калькулятор. Пример print 2+2 и в вод получаем 4 а можно так print «2+2=»;2+2 получим красиво 2+2=4 А вот книга по теме http://old-dos.ru/index.php?page=lib&do=show&id=71
#2 Автор: Nika (2013.10.29 21:44)
dzeon, использовать ЭТО как калькулятор — неудобно. Лучше уж MATHCAD для DOS. http://old-dos.ru/index.php?page=files&mode=files&do=show&id=646
#3 Автор: Даниил (2014.05.08 17:45)
Для этого есть калькулятор.
#4 Автор: zhasmin (2014.10.10 06:15)
Сама концепция-нумерация строк и переходы, очень интересная и эффективная, если грамотно ей пользоваться.
#5 Автор: Сергей (2017.07.19 21:32)
Я пользовался версией gwbasic выход там был по F10 так и было там написано SYSTEM, а не SCREEN году так в 1998 Где бы сейчас такую взять, чтобы было ж-)
#6 Автор: Quark (2017.08.25 18:34)
Изменить текст, который привязан к функциональной клавише, можно командой KEY. Например:
KEY 10, «SYSTEM»+CHR$(13)
Создайте файл, содержащий маленькую программку настройки среды интерпретатора (с именем, скажем, setup.bas) и запускайте интерпретатор сразу с этой программкой:
Сама программка настройки среды может быть, например, такой:
10 KEY 10, «SYSTEM»+CHR$(13) 20 COLOR 15, 1 30 CLS 40 KEY ON 60 NEW
#7 Автор: Dario (2018.04.28 05:49)
zhasmin, ничего в ней интересного нет, ввел новую строку и нужно заново переписывать полпрограммы (изменяя не только номера строк в начале, но и в каждом операторе GOTO/GOSUB). Как я в детстве на ZX Spectrum с этим мучался. Это отвратительный костыль, из-за отсутствия текстового редактора. QBasic, с его нормальными текстовыми метками, был просто подарком.
Чтобы не мучиться, нумерацию строк нужно вести через 10 или через 20. Впрочем, всё равно с текстовыми метками лучше.
#9 Автор: SergeCpp (2018.04.28 19:42)
С числами — приучает к аккуратности, и плюс некая «тренировка под ассемблер». Я это ясно вижу, так как начинал именно с бейсика и машинных кодов (ассемблера /транслятора/ не было).
Многие не понимают, что это на самом деле чудо программа. Без преувеличения. Она имеет текстовый редактор, просто надо в «ней пожить» хотя бы пару месяцев, чтобы понять все эти трюки. Она может даже изменять саму себя во время работы. Может иметь много модульный код, может исполнять ассемблерный код. Скачайте мануал, здесь или в разделе Basic2. Также книгу Р.Джордейн в библиотеке.
#12 Автор: KPG (2020.05.23 14:15)
Microsoft открыла исходный код GW-BASIC (83года?) https://habr.com/ru/news/t/503384 (но его собрать не получилось в комментарии к новости)
P.S. https://github.com/microsoft/GW-BASIC репозиторий проекта
#13 Автор: Dario (2020.07.11 20:03)
> и плюс некая «тренировка под ассемблер» Не было никогда в ассемблерах такого изврата, везде использовались имена для переменных и меток. Это скорее тренировка под написание в кодах, что уже в 70-е не имело никакого смысла. Машкоды уметь читать (взламывать, отлаживать) неплохо, но только сумасшедший будет писать программу в HEX редакторе.
> Я это ясно вижу, так как начинал именно с бейсика и машинных кодов (ассемблера /транслятора/ не было). На машинном коде надо и адреса переходов вручную вычислять. То, что вы мучались, ну могу только посочувствовать. Но зачем заставлять мучаться других? Программирование должно приносить удовольствие, а не бесить убогими ограничениями. Помню, как-то скачал Small Basic — бесплатный, стилизованный под ретро Бейсик от Microsoft, так там кто-то альтернативно одаренный оставил только процедуры (SUB), а функции делать не посчитал нужным. Или все реализации LOGO — одна черепашка, никаких спрайтов и прочего — в результате можно только рисовать векторные фигуры, и дети в школах его ненавидели (а ведь можно было расширить набор оператор для создания полноценных игр — как сделали создатели Scratch). Вот и номера строк из этой же серии.
> Многие не понимают, что это на самом деле чудо программа. Без преувеличения. Красноглазые сектанты примерно такими же словами хвалят VIM и Emacs, которые якобы лучше нормальных IDE вроде JetBrains IDEA и Visual Studio. Только вот профессиональные программисты не понимают почему-то. GW-BASIC это не более чем сильно урезанный MSX BASIC (ибо PC тогда только появился и был убог в плане графики и звука). И устарел сразу после выхода QBASIC/Quick Basic.