├── LICENSE.rst ├── README.rst ├── app.css ├── app.js ├── basicode.js ├── demo.bc3 ├── demo.css ├── demo.html ├── hello.bc ├── index.html ├── showfont.bc2 └── test.html /LICENSE.rst: -------------------------------------------------------------------------------- 1 | 2 | BASICODE interpreter in Javascript 3 | ---------------------------------- 4 | 5 | **Copyright © 2016—2017 Rob Hagemans.** 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | BASICODE interpreter 2 | ==================== 3 | 4 | This is a BASICODE interpreter in Javascript, compatible with BASICODE versions 2, 3 and 3C. 5 | It's free & open source, released under the Expat MIT licence. 6 | There is `a live demo `_ 7 | and `a collection of programs `_. 8 | 9 | `BASICODE `_ was a 1980s-era cross-platform BASIC standard designed to allow software transmission by radio. 10 | 11 | .. image:: https://robhagemans.github.io/basicode/basicode-arabesque.png 12 | 13 | *Screenshot taken from* `Arabesque `_, 14 | *a 1987 BASICODE-3 program by Ch. W. Brederode.* 15 | 16 | Quick start 17 | ----------- 18 | :: 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | Deployment 34 | ---------- 35 | 36 | The package consists of a single Javascript file. To embed one or more interpreters in an HTML5 document, link the script in the header. 37 | It will scan the HTML for any `` 7 | 8 | 9 | 10 |
11 |
12 | Screen 13 |
14 | 21 |
22 |
23 |
24 | 25 | 26 | BASICODE interpreter in Javascript. 27 | Use it with BASICODE programs such as these. 28 | Source is here. 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /hello.bc: -------------------------------------------------------------------------------- 1 | 1000 GOTO 20: REM World greeter 2 | 1010 PRINT "Hello, World!" 3 | 1020 GOTO 950 4 | 30000 REM This program greets the world. 5 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BASICODE in the browser 12 | 13 | 14 | 15 | 16 |
17 |

BASICODE in the browser

18 |
19 |
20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 28 |
29 | 30 |
31 | Keyboard 32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 |
50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |
65 |
66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 |
82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
96 |
97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 |
110 |
111 | 112 | 113 | 114 | 115 | 116 |
117 |
118 |
119 | 120 |
121 | Settings 122 |
123 |
124 |
125 | Colours 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 |
Background / 0Foreground / 7
Basicode 2 & 3
Basicode 3C
123456
156 |
157 |
158 | Size 159 | columns by 160 | rows 161 |
162 |
163 | Font 164 | 196 |
197 |
198 | Speed 199 | 200 | 1000 201 | cycles per second 202 |
203 |
204 | Presets 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 |
214 |
215 |
216 |
217 | 218 |
219 | Programs 220 |
221 |
222 |
223 |
224 | 225 |
226 | Storage 227 |
228 |
229 |
230 |
231 | 232 |
233 | Printer 234 |
235 | 236 | 237 |

238 |             
239 |
240 | 241 |
242 | Listing 243 |
244 | 245 |
246 |
247 | 248 |
249 | Info 250 |
251 |

252 |             
253 |
254 |
255 | 256 | 257 | BASICODE interpreter in Javascript. 258 | Copyright (c) 2016, 2017 Rob Hagemans. 259 | MIT licensed. 260 | Source. 261 | BASICODE programs. 262 | 263 | 264 | 265 | 266 | -------------------------------------------------------------------------------- /showfont.bc2: -------------------------------------------------------------------------------- 1 | 1000 A=10: GOTO 20: REM Font sample 2 | 1010 FOR R=2 TO 7 3 | 1020 FOR C=0 TO 15 4 | 1030 PRINT CHR$(R*16+C); 5 | 1040 NEXT C 6 | 1050 PRINT 7 | 1060 NEXT R 8 | 30000 REM A sample of the display font in a 16x6 grid. 9 | 30010 REM 10 | 30030 REM Copyright 2017 Rob Hagemans 11 | 30040 REM Released under the Expat MIT licence 12 | -------------------------------------------------------------------------------- /test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 15 | 16 | 17 | 18 | 19 | 40 | 41 | 46 | 47 | 56 | 57 | 66 | 67 | 75 | 76 | 82 | 83 | 89 | 90 | 95 | 96 | 104 | 105 | 113 | 114 | 120 | 121 | 127 | 128 | 134 | 135 | 141 | 142 | 147 | 148 | 153 | 154 | 159 | 160 | 165 | 166 | 173 | 174 | 180 | 181 | 187 | 188 | 189 | 199 | 200 | 209 | 210 | 216 | 217 | 223 | 224 | 232 | 233 | 241 | 242 | 248 | 249 | 255 | 256 | 262 | 263 | 269 | 270 | 279 | 280 | 281 | 307 | 308 | 317 | 318 | 323 | 324 | 325 | 326 | --------------------------------------------------------------------------------