Giter VIP home page Giter VIP logo

gw-basic's Introduction

Microsoft GW-BASIC Interpreter Source Code

This repo contains the source-code for Microsoft's GW-BASIC interpreter, as of 1983, ported to assemble with the JWASM assembler.

Original README

Information

This repo contains two Makefiles. Both are meant to be used with the Open Watcom WMAKE.

  • makefile.mas assembles the files using Microsoft Macro Assembler 3.01. This version seems to be close to the one that Microsoft used to build the original code.
  • makefile assembles the files using JWASM. FreeDOS offers JWASM as a package, and JWASM has MASM compatibility as a design goal. The MASM compatibility falls short in a few areas, and changes are needed to make the files assemble with JWASM.

The Open Watcom WLINK program links the files to form a non-functioning GW-BASIC.EXE.

The original code has a number of unresolved external symbols, for such things as graphics that were left to the vendor to customize. The source file stubs.asm contains stubs for the missing functions.

Tags

The "MASM" tag points to a version of the source that assembles and links with MASM 3.01, and has the fewest changes possible from the original to meet that goal.

The "JWASM" tag points to a version of the source that assembles and links with JWASM v2.12pre as supplied with FreeDOS 1.3. When assembled with MASM, it builds the same binary as the MASM tag.

JWASM builds a slightly different binary than MASM. The main reason is that JWASM is much more aggressive at optimizing JMP instructions. MASM will sometimes allocate three bytes for a JMP, and then use the two-byte JMP and a NOP. JWASM, in this situation, will delete the NOP and generate only the two-byte JMP.

License

All files within this repo are released under the MIT (OSI) License as per the LICENSE file stored in the root of this repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.