You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-9Lines changed: 16 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,21 @@
1
1
# 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.
3
4
4
5
This software is currently under a state of rapid development and should therefore be considered alpha quality.
5
6
6
7
## Prerequisites
7
8
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
9
10
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
11
12
12
-
* Toolchain for ARM (32-bit) hardfloat (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
13
14
14
15
* ARM emulator `qemu-arm` (tested with v3.1.0 under Debian), or possibly (untested) hardware running a hard-float (hf) build such as Raspbian
15
16
17
+
* (Untested) Instead of the last two steps, it may be possible to use `qemu-system-arm` running a hard-float ARM OS.
18
+
16
19
## Setting up
17
20
18
21
* 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
43
46
44
47
* (Optional) Run `bison grammar.y` and compare the generated `Parser.d` with the file in `autogen`
45
48
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`).
47
50
48
51
* (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`:
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.
82
89
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
84
91
85
92
## Bugs
86
93
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