Skip to content

Commit ee5463d

Browse files
committed
Updated for Release 0.10.1
1 parent bba7313 commit ee5463d

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
# dbasic
2-
Modern implementation of the original Dartmouth BASIC compilers in the D programming language
2+
3+
Modern implementation of the original Dartmouth BASIC compilers from the 1960s in the D programming language.
34

45
This software is currently under a state of rapid development and should therefore be considered alpha quality.
56

67
## Prerequisites
78

8-
* Recent D compiler, only tested with `gdc` from gcc-trunk (v8.3.0 does NOT work)
9+
* Recent D compiler, only tested with `gdc` from gcc-trunk under Linux (v8.3.0 does NOT work) and DMD (v2.098.1) under Windows
910

10-
* Recent (probably trunk) `bison`, see https://github.com/akimd/bison and reqired patch below
11+
* Recent (ideally trunk) `bison`, see https://github.com/akimd/bison or https://github.com/lexxmark/winflexbison and reqired patch below
1112

12-
* Toolchain for ARM (32-bit) hard float (hf), tested with `arm-linux-gnueabihf-gcc` under Debian
13+
* Toolchain for ARM (32-bit) hard-float (hf), tested with `arm-linux-gnueabihf-gcc` under Debian
1314

1415
* ARM emulator `qemu-arm` (tested with v3.1.0 under Debian), or possibly (untested) hardware running a hard-float (hf) build such as Raspbian
1516

17+
* (Untested) Instead of the last two steps, it may be possible to use `qemu-system-arm` running a hard-float ARM OS.
18+
1619
## Setting up
1720

1821
* Build `bison` (at least v3.8.x) and patch the D skeleton file:
@@ -43,7 +46,7 @@ This software is currently under a state of rapid development and should therefo
4346

4447
* (Optional) Run `bison grammar.y` and compare the generated `Parser.d` with the file in `autogen`
4548

46-
* Generate a native executable `dbasic` by running the Makefile, altering it to reference `bison` and `gdc` as necessary
49+
* Generate a native executable `dbasic` by running the GNU Makefile (or NMAKE Makefile under Windows) as `make`, altering it to reference `bison`/`win_bison.exe` and `gdc`/`dmd.exe` as necessary. (Windows needs a Visual Studio command prompt with `dmd2vars32.bat` executed in it, with the command `nmake /f Makefile.nmake`).
4750

4851
* (Optional) Run a command such as that below to test the ARM cross-build and compare generated `basic_lib.s` with the file in `autogen`:
4952

@@ -54,7 +57,7 @@ $ arm-linux-gnueabihf-gcc -mcpu=arm3 -mfpu=vfp -march=armv2 -marm -mfloat-abi=ha
5457
* Test the compiler:
5558

5659
```
57-
$ ./dbasic < examples/example1.bas > test.s
60+
$ ./dbasic < examples/example-p12.bas > test.s
5861
$ arm-linux-gnueabihf-gcc test.s basic_lib.s -lm
5962
```
6063

@@ -74,14 +77,18 @@ $ ./runtime/run-linux.sh examples/ftball.txt
7477

7578
Manual for the original Dartmouth BASIC: https://cs.bris.ac.uk/~dave/basic.pdf
7679

80+
See the `examples` directory for all of the BASIC programs in the above document.
81+
7782
Wikipedia: https://en.wikipedia.org/wiki/Dartmouth_BASIC
7883

7984
## Motivation and Roadmap
8085

81-
The intention is to recreate the original programming enviroment that existed in the late 1960s at Dartmouth College running on a GE-225 mainframe, having been inspired by the book "Endless Loop" by Mark Jones Lorenzo. The compiler is the major part of this.
86+
The intention is to recreate the original programming enviroment that existed in the late 1960s at Dartmouth College running on a GE-225 mainframe and accessed by teletype terminals, having been inspired by the book "Endless Loop" by Mark Jones Lorenzo. The compiler is the major part of this project.
87+
88+
Ultimately I'd like to support all of the Dartmouth BASICs (First thru Sixth); there is a runtime switch to turn functionality on and off (`./dbasic 1` enables only First Edition keywords, for example). The complete set of keywords from Basic The First (1964) is available **now including one- and two-dimensional arrays** ~~apart from `DEF` and `FN`~~, and also with `INPUT` from Basic The Third to enable the Football Championship program `ftball.txt` to run.
8289

83-
Ultimately I'd like to support all of the Dartmouth BASIC's (First thru Sixth) with a runtime switch to turn functionality on and off. The complete set of keywords from Basic The First (1964) is available apart from `DEF` and `FN`, and also with `INPUT` from Basic The Third to enable the Football Championship program `ftball.txt` to run.
90+
* 2022/03/03: Tag 0.10.1 (hopefully) complete implementation of Basic The First
8491

8592
## Bugs
8693

87-
Please do report bugs, together with working or non-working BASIC code.
94+
Please do report bugs, together with correct or incorrect BASIC input files.

0 commit comments

Comments
 (0)