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]

Ja, duh, uiteraard kan GW-BASIC niet in GW-BASIC zelf geschreven zijn. Dan heb je een kip-en-ei probleem.
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.
Ja, duh, uiteraard kan GW-BASIC niet in GW-BASIC zelf geschreven zijn. Dan heb je een kip-en-ei probleem.
Ik reageerde op het feit dat je zei dat het niets met assembly te maken heeft. Aangezien het hier gaat over het feit dat de source code van GW-BASIC online geplaatst is, vond ik dat nogal kort door de bocht.

Wat het kip-en-ei probleem betreft, kan je alleszins heel dicht in de buurt komen: in Scheme kan je wel degelijk een compiler voor Scheme schrijven (niet dat ik het per se zo een leuk werk vond, maar het kan wel).
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è :+
heb voor de C64, nog wel programma's opgenomen via de radio !
Later ook wel demo's in assembly geprogrammeerd etc maar goed, ander verhaal
Ik ook, bij NOS Hobyscoop
Of vergeten op te slaan op een bandje...
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
Heel mooi, zeker gezien Markdown pas in 2004 uitgevonden is. :Y) Het zal wel gaan over (semi-automatische?) omzetting van tekstbestanden.

Edit:
Nee, back-dating. Ze hebben gewoon alles op die tijd ingesteld. Ook dat wat tegenwoordige hen verplciht wordt om te er bij te plaatsen.
Ow, ik had die inhoud van security.md niet goed gelezen :+ :+ :+

[Reactie gewijzigd door edeboeck op 23 mei 2020 10:08]

Nee, back-dating. Ze hebben gewoon alles op die tijd ingesteld. Ook dat wat tegenwoordige hen verplciht wordt om te er bij te plaatsen.
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.
QBASIC (4.5) was de versie met compiler - draaide fantastisch, Jarenlang les gegeven op[GW/Q]Basic. Zou het nog zo uit mn hoofd kunnen.
Laten we maar niet doen 8)7
QuickBasic de interpreter, QBASIC de compiler versie.
Kennelijk heb ik me met GWBASIC vergist :-(
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.
QBasic was voor mij de enige programmeertaal/-omgeving op de pc om iets te kunnen maken/draaien. Rond 1993 was internet wel serieuzer aan het worden, maar gratis compilers kon ik toen nog niet vinden/verkrijgen. Wilde dolgraag 'echte' executables maken, maar dat ging dus niet met QBasic. Toen een paar jaar later Pascal kreeg op school kon ik eindelijk wel alleenstaande programma's maken en dat was voor mij een grote stap en voelde professioneler dan in QBasic te moeten draaien.

Maar goed in QBasic kwam ik ook niet veel verder dan lijntjes, kleuren, geluidjes, peek en poke en teksten. Maar het was met een boek erbij wel mijn eerste serieuze programmeertaal die te begrijpen was hoe een lus werkt, variabelen enzovoorts.

Tegenwoordig is het vrij normaal dat je allerlei talen en compilers gratis kunt downloaden, maar zoals gezegd in mijn tijd (rond 1993) was er moeilijk iets gratis te vinden en veel minder informatie/tutorials/enz.
Ja, dat waren nog eens tijden! Ik herrinner me dat ik in de bibliotheek een boekje over programmeren in QBasic had gevonden. Dat voelde alsof ik een schat had ontdekt. Toen ik rond 1998 in Java leerde te programmeren, waren de IDE's ook nog eerder text editors die een compiler aanriepen. Had je opeens 33 "errors" in je code zitten omdat je ergens een haakje was vergeten...
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...
Graphics and Windows Beginner's All-Purpose Symbolic Instruction Code.
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