Skip to content

Commit 312cb56

Browse files
committed
Merge branch 'develop'
2 parents 6af4598 + 38b69ca commit 312cb56

File tree

1,565 files changed

+6310
-1529
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,565 files changed

+6310
-1529
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
*.pyd
33
*.pyo
44
*.dll
5+
*.dylib
56
.android.*
67
USAGE.txt
78
doc/

DEVELOPMENT.md

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,36 @@ The instructions there cover the most common platforms and use cases.
1111
#### Dependencies ####
1212
The following packages are needed or recommended when installing PC-BASIC:
1313

14-
| Package | OS | Status | Used for
15-
|-----------------------------------------------------------------------------------|--------------------|--------------|----------------------------------------
16-
| [Python 2.7.12](https://www.python.org/downloads/release/python-2712/) | all | required |
17-
| [Setuptools](https://pypi.python.org/pypi/setuptools) | all | required |
18-
| [PySDL2](https://pysdl2.readthedocs.org/en/latest/) | all | recommended | sound and graphics
19-
| [NumPy](https://sourceforge.net/projects/numpy/files/) | all | recommended | sound and graphics
20-
| [PySerial 3.4](https://pypi.python.org/pypi/pyserial) | all | optional | physical or emulated serial port access
21-
| [PyParallel 0.2](https://sourceforge.net/projects/pyserial/files/pyparallel/0.2/) | Windows, Linux | optional | physical parallel port access
22-
| [PyGame 1.9.3](http://www.pygame.org) | all | optional | sound and graphics (PyGame interface)
23-
| [PyAudio](http://people.csail.mit.edu/hubert/pyaudio/) | all | experimental | sound (PortAudio engine)
14+
| Package | OS | Status | Used for
15+
|-------------------------------------------------------------------------------|--------------------|--------------|----------------------------------------
16+
| [Python 2.7.12](https://www.python.org/downloads/release/python-2712/) | all | required |
17+
| [Setuptools](https://pypi.python.org/pypi/setuptools) | all | required |
18+
| [SDL2](https://www.libsdl.org/download-2.0.php) | all | recommended | sound and graphics
19+
| [NumPy](https://sourceforge.net/projects/numpy/files/) | all | recommended | sound and graphics
20+
| [PySerial 3.4](https://pypi.python.org/pypi/pyserial) | all | optional | physical or emulated serial port access
21+
| [PyParallel](https://sourceforge.net/projects/pyserial/files/pyparallel/0.2/) | Windows, Linux | optional | physical parallel port access
22+
| [PyGame 1.9.3](http://www.pygame.org) | all | optional | sound and graphics (PyGame interface)
23+
| [PyAudio](http://people.csail.mit.edu/hubert/pyaudio/) | all | experimental | sound (PortAudio engine)
2424

2525

2626
`setuptools` and `pip` are included with Python.
2727
Once you have a working Python installation, most dependencies can be installed with `pip`:
2828

2929
pip install pysdl2 numpy pygame pyaudio pyserial
3030

31-
If you require access to a physical parallel port,
32-
download PyParallel from the web site linked above. This is only supported on Windows and Linux.
33-
However, since most modern machines do not actually have parallel ports, you probably don't need it.
34-
PyParallel is _not_ needed for printing to a CUPS or Windows printer.
31+
To use the graphical interface, you will also need to install the [SDL2](https://www.libsdl.org/download-2.0.php) library.
32+
Install the library in your OS's standard location for libraries.
33+
If this causes difficulties, you can alternatively place the library in the following location:
3534

36-
To use the graphical interface, you will also need to install the [`SDL2`](https://www.libsdl.org/download-2.0.php) library, which is _not_ included in the `pysdl2` package. Install the library in your OS's standard location. On Windows, you can alternatively place `sdl2.dll` in the `pcbasic\lib` directory.
35+
- Windows (64-bit Python, 64-bit SDL): `pcbasic\lib\win32_x64\sdl2.dll`
36+
- Windows (32-bit Python, 32-bit SDL): `pcbasic\lib\win32_x86\sdl2.dll`
37+
- MacOS: `pcbasic/lib/darwin/libSDL2.dylib`
38+
39+
[PyParallel](https://sourceforge.net/projects/pyserial/files/pyparallel/0.2/)
40+
is only needed to access physical parallel ports, not for printing to a CUPS or Windows printer.
41+
Note that most modern machines do not actually have parallel ports. If you have a parallel port and want to use it with PC-BASIC,
42+
download and install PyParallel from the link above. Although a `pyparallel` package exists in on PyPI, at present this does not work
43+
as essential libraries are missing.
3744

3845

3946
#### External tools ####
@@ -49,16 +56,21 @@ PC-BASIC employs the following external command-line tools, if available:
4956

5057

5158
#### Building from GitHub source repository ####
52-
The following additional packages are needed for development and testing:
53-
54-
| Package | OS | Used for
55-
|----------------------------------------------------------------------------------------------------------------|---------|-----------------
56-
| [`git`](https://git-scm.com/) | all | development
57-
| [Microsoft Visual C++ Compiler for Python 2.7](https://www.microsoft.com/en-us/download/details.aspx?id=44266) | Windows | development
58-
| [`lxml`](https://pypi.python.org/pypi/lxml/3.4.3) | all | documentation
59-
| [`markdown`](https://pypi.python.org/pypi/Markdown) | all | documentation
60-
| [`pylint`](https://pypi.python.org/pypi/pylint/1.7.6) | all | testing
61-
| [`coverage`](https://pypi.python.org/pypi/coverage) | all | testing
59+
The following additional packages are used for development, testing and packaging:
60+
61+
| Package | OS | Used for
62+
|----------------------------------------------------------------------------------------------------------------|-------------------|-----------------
63+
| [Git](https://git-scm.com/) | all | development
64+
| [Microsoft Visual C++ Compiler for Python 2.7](https://www.microsoft.com/en-us/download/details.aspx?id=44266) | Windows | development
65+
| [`lxml`](https://pypi.python.org/pypi/lxml/3.4.3) | all | documentation
66+
| [`markdown`](https://pypi.python.org/pypi/Markdown) | all | documentation
67+
| [Prince](https://www.princexml.com/download/) | all | documentation
68+
| [`pylint`](https://pypi.python.org/pypi/pylint/1.7.6) | all | testing
69+
| [`coverage`](https://pypi.python.org/pypi/coverage) | all | testing
70+
| [`wheel`](https://pypi.python.org/pypi/wheel) | all | packaging
71+
| [`twine`](https://pypi.python.org/pypi/twine) | all | packaging
72+
| [`cx_Freeze`](https://pypi.org/project/cx_Freeze/) | Windows, MacOS | packaging
73+
| [`fpm`](https://github.com/jordansissel/fpm) | Linux | packaging
6274

6375

6476
These are the steps to set up the local repository ready to run PC-BASIC:

README.md

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,21 @@ See also the [PC-BASIC home page](http://robhagemans.github.io/pcbasic/).
1818

1919
### Quick Start Guide ###
2020

21-
This quick start guide covers installation and elementary use of PC-BASIC. For more information, please refer to the [full PC-BASIC documentation](http://pc-basic.org/doc#) which covers usage, command-line options and a [comprehensive GW-BASIC language reference](http://pc-basic.org/doc#reference). This documentation is also included with the current PC-BASIC release.
21+
This quick start guide covers installation and elementary use of PC-BASIC. For more information, please refer to the [PC-BASIC documentation](http://pc-basic.org/doc/2.0#).
2222

2323
If you find bugs, please [open an issue on GitHub](https://github.com/robhagemans/pcbasic/issues). It would be most helpful if you could include a short bit of BASIC code that triggers the bug.
2424

2525

2626
#### Installation ####
27-
The _stable release_ is preferred for desktop use. It can be downloaded from one of the following locations:
2827

29-
- [PC-BASIC releases on GitHub](https://github.com/robhagemans/pcbasic/releases)
30-
- [PC-BASIC releases on SourceForge](https://sourceforge.net/projects/pcbasic/files/)
28+
PC-BASIC desktop installers for Windows, Mac, and Linux can be downloaded from [GitHub](https://github.com/robhagemans/pcbasic/releases).
3129

32-
Installers are provided in the form of a Windows `.exe` and a Mac OS `.dmg` which can be installed in the usual way for those platforms. For Linux and other Unix-based systems, a `.tgz` archive is provided which includes an install script. Please consult the documentation inside the package for further instructions.
33-
34-
Python users can obtain _development releases_ from [PyPI](https://pypi.org/project/pcbasic/) through `pip install pcbasic`.
30+
Python users can obtain the PC-BASIC package from [PyPI](https://pypi.org/project/pcbasic/) through `pip install pcbasic`.
3531

3632

3733
#### BASIC survival kit ####
38-
Click on the PC-BASIC application icon or run `pcbasic` on the command prompt to start PC-BASIC. The default emulation target is
39-
GW-BASIC 3.23 on a generic IBM-compatible PC with a VGA video card.
40-
41-
PC-BASIC starts in direct mode, a 1980s-style interface operated by executing
42-
BASIC commands directly. There is no menu, nor are there any of the visual clues
34+
PC-BASIC has a 1980s-style interface operated by executing
35+
typed commands. There is no menu, nor are there any of the visual clues
4336
that we've come to expect of modern software.
4437

4538
A few essential commands to help you get around:
@@ -54,7 +47,7 @@ A few essential commands to help you get around:
5447
| `SYSTEM` | exits PC-BASIC immediately, discarding any unsaved program |
5548

5649
Use one of the key combinations `Ctrl+Break`, `Ctrl+Scroll Lock`, `Ctrl+C` or `F12+B`
57-
to interrupt a running program and return to direct mode.
50+
to interrupt a running program.
5851

5952

6053
#### Program location ####
@@ -65,7 +58,7 @@ If started through the start-menu shortcut, PC-BASIC looks for programs in the s
6558

6659
If started from the command prompt, PC-BASIC looks for programs in the current working directory.
6760

68-
See [the documentation on accessing your drives](http://pc-basic.org/doc#mounting) for more information.
61+
See [the documentation on accessing your drives](http://pc-basic.org/doc/2.0#mounting) for more information.
6962

7063

7164
#### External resources ####
@@ -75,7 +68,7 @@ The following pages have GW-BASIC program downloads, lots of information and fur
7568
- [PeatSoft](http://archive.is/AUm6G) provides GW-BASIC documentation, utilities and some more games.
7669
- [Neil C. Obremski's gw-basic.com](http://www.gw-basic.com/) has some fun new games made recently in GW-BASIC.
7770
- [Leon Peyre](http://peyre.x10.mx/GWBASIC/) has a nice collection of GW-BASIC programs, including the (in)famous first IBM PC game `DONKEY.BAS`.
78-
- [Brooks deForest](http://www.brooksdeforest.com/tandy1000/) provides his amazing Tandy GW-BASIC games, all released into the public domain.
71+
- [Brooks deForest](https://web.archive.org/web/20170222075609/brooksdeforest.com/tandy1000) provides his amazing Tandy GW-BASIC games, all released into the public domain.
7972
- [TVDog's Archive](http://www.oldskool.org/guides/tvdog/) is a great source of information and GW-BASIC programs for the Tandy 1000.
8073
- [Phillip Bigelow](http://www.scn.org/~bh162/basic_programs.html) provides scientific programs written in GW-BASIC.
8174
- [Gary Peek](http://www.garypeek.com/basic/gwprograms.htm) provides miscellaneous GW-BASIC sources which he released into the public domain.

THANKS.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,19 @@ PC-BASIC incorporates code derived from other projects, in particular:
3333

3434
* **J-L Morel**'s [Win32::Console::ANSI](http://search.cpan.org/~jlmorel/Win32-Console-ANSI-1.11/lib/Win32/Console/ANSI.pm)
3535
* **Valentin Lab**'s [win_subprocess.py](https://gist.github.com/vaab/2ad7051fc193167f15f85ef573e54eb9)
36+
* **Marcus von Appen**'s [PySDL2](https://pysdl2.readthedocs.org/en/latest/)
3637

3738
PC-BASIC depends on the following open-source projects:
3839

3940
* [Python](http://www.python.org)
4041
* [Setuptools](https://pypi.python.org/pypi/setuptools)
42+
* [NumPy](http://www.numpy.org)
43+
* [PySerial](https://github.com/pyserial/pyserial)
44+
* [PyParallel](https://github.com/pyserial/pyparallel)
4145
* [Simple DirectMedia Layer (SDL)](http://www.libsdl.org)
4246
* [SDL2_gfx](http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/)
43-
* [PySDL2](https://pysdl2.readthedocs.org/en/latest/)
4447
* [PyGame](http://www.pygame.org)
4548
* [PyAudio](http://people.csail.mit.edu/hubert/pyaudio/)
46-
* [NumPy](http://www.numpy.org)
47-
* [PySerial](http://pyserial.sourceforge.net/pyserial.html)
4849

4950

5051
### Fond memories
@@ -153,17 +154,20 @@ Documentation tools:
153154

154155
* [LXML](http://lxml.de)
155156
* [Markdown](https://pypi.python.org/pypi/Markdown)
157+
* [Prince](https://www.princexml.com/download/)
156158

157159
Packaging tools:
158160

159-
* [PyInstaller](http://www.pyinstaller.org)
160-
* [Nullsoft Scriptable Install System](http://nsis.sourceforge.net)
161-
* [7-Zip](http://www.7-zip.org)
161+
* [Wheel](https://pypi.python.org/pypi/wheel)
162+
* [Twine](https://pypi.python.org/pypi/twine)
163+
* [cx_Freeze](https://anthony-tuininga.github.io/cx_Freeze/)
164+
* [fpm](https://github.com/jordansissel/fpm)
162165

163166
Source code and releases are hosted on:
164167

165168
* [GitHub](https://github.com/)
166169
* [SourceForge](https://sourceforge.net/)
170+
* [PyPI](https://pypi.org/project/pcbasic/)
167171

168172

169173
### Emulators

docsrc/cover.png

189 KB
Loading

0 commit comments

Comments
 (0)