Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Microsoft zet GW-BASIC uit 1983 op GitHub

Microsoft heeft open source sinds een paar jaar volledig omarmd, maar het laatste wapenfeit van het bedrijf trekt dat concept wel erg in het extreme: het bedrijf heeft GW-BASIC op GitHub beschikbaar gemaakt.

Microsoft heeft de programmeertaal op GitHub geplaatst. Het bedrijf schrijft in een blogpost dat het veel verzoeken kreeg om GW-BASIC uit te brengen en daaraan wilde voldoen. Ook zou de release een 'historisch en educatief doel hebben'.

Microsoft maakte GW-BASIC als een alternatief voor IBM's Advanced BASIC, dat op zijn beurt weer een port van BASIC zelf was. GW-BASIC was een programmeertaal voor Intels 8088-processor, die in februari 1983 uitkwam. Microsoft programmeur Rich Turner schrijft in blogpost dat er geen ports voor andere processors dan de 808x-serie uitkomen, al zegt hij niet waarom dat zo is.

De programmeertaal staat als archief op GitHub. Het is dus niet mogelijk voor andere gebruikers om aanpassingen aan de code te doen. Ook is het niet mogelijk executable binaries te maken. Het is niet de eerste keer dat Microsoft oude software op GitHub zet. Twee jaar geleden maakte het bedrijf MS-DOS opensource beschikbaar.

Door Tijs Hofmans

Redacteur privacy & security

22-05-2020 • 18:43

70 Linkedin

Reacties (70)

Wijzig sortering
GW-BASIC was niet eens de eerste BASIC-interpreter van Microsoft. Hun allereerste BASIC-interpreter was Altair BASIC die in 1975 geschreven is door Bill Gates en Paul Allen, op een DEC PDP-10 mainframe

Deze draaide echter niet op 808x, maar op een MITS Altair 8800 CPU, die weer afgeleid was van de Intel 8080, een voorloper van de Intel 8085, die op zijn beurt weer de voorloper van de welbekende 8086/8088 was.

Andere bekende, door Microsoft geschreven BASIC-interpreters waren o.a. Commodore BASIC van o.a. de Commodore64, en MSX BASIC dat op de diverse MSX-computers van o.a. Sony, Philips, Panasonic etc draaide.

[Reactie gewijzigd door wildhagen op 22 mei 2020 19:34]

En ook Amiga Basic is door MS gemaakt.
En ook Amiga Basic is door MS gemaakt.
MSX basic ook, als ik me niet vergis.
--------- ---- -- ---- ----- --- ---- -----
COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN
--------- ---- -- ---- ----- --- ---- -----

ORIGINALLY WRITTEN ON THE PDP-10 FROM
FEBRUARY 9 TO APRIL 9 1975
Zie ik in hun code staan. Is dit al niet die versie?
Vermoedelijk hebben ze voortgeborduurd op de code die ze al hadden
Ik ben ooit nog met een boek van Color BASIC begonnen, die daar tussenin zat. Maar volgens mij wel in GW-BASIC gecode toen, moet rond 1994 zijn geweest. Het is niet echt een complexe taal dus er zullen wel geen grote verschillen tussen hebben gezeten met wat ik ermee deed toen.
Er waren echt al computers, voordat de IBM PC de 'standaard' voor computers werd.Denk maar aan de Tandy/Radio Shack TRS-80, de Apple ][ en de Commodore PET 2001 , die hadden allemaal al een variant van Micro-Soft (In het begin stond er echt een streepje tussen Micro en Soft!) BASIC , en die BASIC was weer geschreven voor nog oudere computers, zoals de IMSAI 8080 en de Altair 8800 uit 1975. Die eerste versie van hun BASIC heette nog Altair BASIC, en paste nog in 4 Kilobyte, en die werd door Allen en Gates op ponsband geleverd. Later werd eeze als ROM aan fabrikanten van microcomputers. In die tijd werden die dingen nog Home-computers genoemd, voordat IBM zich op 12 augustus 1981 de naam "Personal Computer" toe-eigende met hun model 5150, dat de allereerste PC was.
Artikel: "Ook is het niet mogelijk executable binaries te maken."

Git project: "Contains no build scripts, makefiles, or tools required to generate executable binaries, nor does it contain any pre-built binaries / executables."

Vast niet onmogelijk. Zou het lastig zijn, zonder makefiles en build scripts (dus die zelf maken)?

Edit: "(dus die zelf maken)" toegevoegd.

[Reactie gewijzigd door IdleTime op 22 mei 2020 19:41]

MASM heb ik hier nog wel liggen (in doos, met 10kg documentatie). Tools dus geen probleem.
Makefiles en scripts hoeven ook geen probleem te zijn als de broncode compleet is.
De interpreter zelf moet niet ingewikkeld zijn. Het zijn vooral de platform specifieke instructies die lastig kunnen zijn, zoals graphics en geluid.

Ik zal er eens in duiken...

Ik zit er bijna aan te denk om dit te vertalen naar een windows console app met 64-bit assembly...
Maar dan (dus) zonder ondersteuning voor graphics en geluid... en POKEs...
Bedoelen ze in het artikel niet dat je je basic programma's niet kunt compilen naar .exe, misschien? Daar had je vroeger dan QuickBasic voor nodig, maar dat bestond toen nog niet :P
"GW-BASIC was de assemble-code voor Intels 8088-processor".

Nee, dat zou MASM zijn, de Microsoft Macro Assembler. GW-BASIC heeft niets met assembly te maken, het is een typische Basic interpreter.

Wel grappige code om te browsen, verder. Dit is duidelijk niet hun eerste BASIC; de codebase komt uit 1975:
--------- ---- -- ---- ----- --- ---- -----
COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN
--------- ---- -- ---- ----- --- ---- -----

ORIGINALLY WRITTEN ON THE PDP-10 FROM
FEBRUARY 9 TO APRIL 9 1975

BILL GATES WROTE A LOT OF STUFF.
PAUL ALLEN WROTE A LOT OF OTHER STUFF AND FAST CODE.

[Reactie gewijzigd door MSalters op 22 mei 2020 19:24]

Tweakers bedoelt volgens mij dat er vroeger een ROM-BASIC chip aanwezig was. Deze ROM chip was zelfs onderdeel van het bootproces.

Tot in de laatste dagen van BIOS kwam de foutmelding "No ROM BASIC" nog weleens voor in de firmwares.
In de IBM PC, lang niet in alle 8088's, en IBM's BASICA, niet GW-BASIC.
Ik heb zelfs nog een keer een Pentium 4 systeem gezien waarin de foutmelding "No ROM BASIC" voor kwam.
Het ROM BASIC was een fallback boot device als er geen andere bootable devices waren gevonden. Dat bestond dan idd uit een BASIC interpreter. De "No ROM BASIC" melding kreeg je als ook die niet aanwezig was.

Ik kan me niet voorstellen dat daar in de veel latere systemen nog steeds daadwerkelijk naar gezocht werd, en was het meer de foutmelding zelf die gewoon werd weergegeven.
Tot diep in de Windows 98 en XP systemen kwam dit nog voor. Sommige fabrikanten wilde nog wel eens die melding veranderen met: "No boot disk" wat evenveel karakters is, maar meer als dat werd er niet aan gedaan.

Je moet niet onderschatten hoe oud het BIOS systeem is en hoe lang het werd gebruikt zonder significante aanpassingen. Ondanks dat de melding werd aangepast bleef de BIOS nog steeds zoeken naar een ROM interpreter, welke er al lang niet meer was.
Ik herinner me die No ROM BASIC ook nog uit computers van het XP-tijdperk, dus ik kan bevestigen dat je gelijk hebt.
"GW-BASIC was de assemble-code voor Intels 8088-processor".

Nee, dat zou MASM zijn, de Microsoft Macro Assembler. GW-BASIC heeft niets met assembly te maken, het is een typische Basic interpreter.
Het is inderdaad een BASIC interpreter, maar dat het niets met assembly te maken heeft, klopt niet:
Like much software from the 70s and 80s, and just like the source for MS-DOS, the source code of GW-BASIC is 100% assembly language.
[...]
Thus, all the source code for GW-BASIC is pure assembly code, translated on a per-processor/per-machine basis from core/master sources.
edit:
Tweede deel citaat vanop de Microsoft devblog toegevoegd

[Reactie gewijzigd door edeboeck op 22 mei 2020 19:29]

Ik snap je punt, maar het klopt niet; GCC is (grotendeels) in C geschreven. Het kip-en-ei probleem wordt opgelost door (een vroege versie van) de interpreter of compiler te compileren met een bestaande compiler.
Maar GW-BASIC is interpreted (en een interpreter, geen compiler), in dat opzicht kan het niet in zichzelf geschreven zijn. Een C-compiler kan wel in C geschreven zijn omdat die gecompileerd wordt tot een executable die vervolgens kan draaien zonder hulp. Je kan natuurlijk wel een GW-BASIC interpreter in GW-BASIC schrijven maar die moet je dan alsnog draaien in een andere interpreter.
Mijn 1e ervaring met een computer. Zelf een database gemaakt in GW Basic (voor de avondcursus Programmeren) op de MTS :)
Zelf een database gemaakt in GW Basic
Ben wel benieuwd hoe je dat hebt gedaan. GW-Basic is een relatief eenvoudige interpretertaal maar geen DB omgeving. Verwar je het nu niet met DBase?
Binary file & Index werkte prima en snel.
Ja, en dat noemen we vandaag de dag No-SQL ;)
Van zodra je naar een filesystem kan schrijven kun je er een database mee bouwen. (En zelfs dat hoeft niet, tenzij je je dbms persistent wil maken)

[Reactie gewijzigd door Robby517 op 22 mei 2020 22:51]

Ooit nog eens een boek gehad met Basic.
Dan kon je weken overtypen en had je een draaiend “programma”.
O ja, niet vergeten de extra weken typefouten eruit halen :)
Of uit het blad Radio amateur.
Volgens mij heette het "Radio Amateur Magazine" aka RAM. Heb er nog proggies voor geschreven. Als je proggie geplaatst werd, kreeg je een metalen balpen met LCD klok/agenda erin. Moet er nog ergens een hebben liggen iig.
Klopt. Maar het is lang geleden hè :+
Wel mooi dat ze al in 1983 een SECURITY.md Markdown file geschreven hebben.
Als men nou opgelet had toen hadden we Azure, Xamarin, dotnet en de overname van Github aan zien komen. :+
Daarnaast wisten ze ook al goed met git om te gaan, commit ui 1983
Zo dan, dat roept mooie oude herinneren op, veel uren aan een programma gewerkt in GW-BASIC.
Via via de compiler geregeld, liep als een trein op een 8088 met 2x 5 1/4 floppy's drives.
Het bewuste programma heb ik nog steeds liggen op 5 1/4 floppy's. Nu veel eenvoudiger te doen met Excel.
QuickBasic was de versie met compiler. QBasic was een soort 'QuickBasic lite', met dezelfde taal maar juist zonder de compiler, die standaard bij MS-DOS v5 en hoger zat.
Oef, dat brengt wat herinneringen terug... Vroeger daarmee leren programmeren, op de Olivetti M24 van m'n vader.

Nooit geweten waar GW voor stond, en als ik wikipedia erop nasla, is dat nog steeds niet zeker. Initialen van de bedenker, initialen van Bill (William) Gates, Gee-Whiz...
Wat leuk, hier ben ik ook mee begonnen als klein jochie. Grappig om nu ~25 jaar na dato te kunnen kijken wat er onder de motorkap gaande was :D
--------- ---- -- ---- ----- --- ---- -----
COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN
--------- ---- -- ---- ----- --- ---- -----

ORIGINALLY WRITTEN ON THE PDP-10 FROM
FEBRUARY 9 TO APRIL 9 1975

BILL GATES WROTE A LOT OF STUFF.
PAUL ALLEN WROTE A LOT OF OTHER STUFF AND FAST CODE.
MONTE DAVIDOFF WROTE THE MATH PACKAGE (F4I.MAC).
:')

[Reactie gewijzigd door bazkie_botsauto op 22 mei 2020 19:19]


Om te kunnen reageren moet je ingelogd zijn


Apple iPhone SE (2020) Microsoft Xbox Series X LG CX Google Pixel 4a CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True