GW-BASIC
GW-BASIC
Our great sponsors
GW-BASIC | GW-BASIC | |
---|---|---|
1 | 13 | |
79 | 2,615 | |
- | - | |
1.7 | 10.0 | |
over 1 year ago | almost 4 years ago | |
Assembly | C++ | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
GW-BASIC
-
Microsoft GW-Basic Interpreter Source Code
There are forked versions which have been made somewhat to work. [1] [2] The original version (the linked article) won't work as-is, since there are no build scripts, instructions, or executables.
[1] https://github.com/dspinellis/GW-BASIC
[2] https://github.com/tkchia/GW-BASIC
GW-BASIC
-
Akalabeth: Porting from AppleSoft Basic to Gwbasic
Fun fact...Microsoft open sourced GW-BASIC under the MIT license a couple years ago...
https://github.com/microsoft/GW-BASIC
The blog post announcing it is here if you want more information about it...
https://devblogs.microsoft.com/commandline/microsoft-open-so...
-
Basic and the ROMs that changed the world (and then disappeared) (2022)
I'm way ahead of you :)
Unfortunately, rewriting it without reverse engineering makes it almost impossible to reach the same performance characteristics. These are essential to reproduce proper timing in several games.
Also, it may not be much code, but the floating point operations are quite a piece of art. See the GW-BASIC source code, which is somewhat similar [1].
I also rewrote most of the BASIC interpreter directly in Kotlin, omitting assembly, but obviously that runs into the same compatibility issues.
As far as I understand it, reverse engineering is not allowed without permission, although some people suggest that it is ok to get other software to run. Not sure whether that case would hold up for my entertainment value.
[1] https://github.com/microsoft/GW-BASIC/blob/master/MATH2.ASM
-
GPL-3.0 licensed BIOS for Intel 8088 based computers
Someone could take this and try to make it ROM-able in order to "complete" the BIOS:
https://github.com/microsoft/GW-BASIC
-
Question regarding floating point
Hey! They use an emulation. You can implement this yourself but it's quite the undertaking if you also want trigonometry functions etc. There are libraries available but they can be hard to build on older compilers, search for floating point emulation c library to get some ideas. Depending on what you want to do however are you sure you need floating point? I thought so in the past but have reconsidered. Many times you can work something out by either scaling or smart fractions like 355/113 for pi etc. Regarding scaling, this is also how fixed point math works, certainly also of interest and maybe more then enough?
- The Golden Age of Basic (2014)
-
Lapsus$ hackers leak 37GB of Microsoft's alleged source code
> but if ever the source for QBasic leaked
QBasic? - Why that modern thing. Just use the proper BASIC: https://github.com/microsoft/GW-BASIC ;)
- News to me: Microsoft GW-BASIC Interpreter Source Code
- Microsoft GW-Basic Interpreter Source Code
-
Hacker News top posts: Mar 7, 2022
Microsoft GW-Basic Interpreter Source Code\ (20 comments)
What are some alternatives?
tashtalk - An interface for Apple's LocalTalk networking protocol.
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
windows
simh - The Computer History Simulation Project
ISA_8bitNetwork_8019 - 8bit ISA NE2000-compatible network card based on the RTL8019AS chip
GW-BASIC - Assembling Microsoft GW-BASIC from 1983
unzx0_x86 - Free, zlib licensed ZX0 decompressor for the x86
linux - Linux kernel source tree
8088_bios - BIOS for Intel 8088 based computers
IBM-PC-BIOS - This is a reconstruction of the original 1981-82 IBM PC BIOS source code using scanning and transcription of the BIOS listings found in the IBM Technical Reference manuals.
micro_8088 - Micro 8088 - IBM XT Compatible Processor Board based on Faraday FE2010 chipset