README tweaks.
Chris Pressey
9 years ago
1 | 1 | ======== |
2 | 2 | |
3 | 3 | `hatoucan` is a tokenizer for Commodore BASIC 2.0 programs. You give it a |
4 | text file, and it gives you a `.PRG` file, which can then be run on a | |
5 | Commodore computer (or emulator) such as the Commodore 64 or VIC-20. It is | |
6 | written in Python 2.x and its source code is in the [public domain](UNLICENSE). | |
4 | text file containing BASIC source code, and it gives you a `.PRG` file which | |
5 | can be run on a Commodore computer (or emulator) such as the Commodore 64 or | |
6 | VIC-20. | |
7 | ||
8 | `hatoucan` is written in Python 2.x and its source code is in the | |
9 | [public domain](UNLICENSE). | |
7 | 10 | |
8 | 11 | Quick start |
9 | 12 | ----------- |
33 | 36 | the [VICE][] distribution, why did I write this? |
34 | 37 | |
35 | 38 | Well, any reasonable person would probably be wise to just use `petcat`. |
36 | But, I wanted a tool that could be included with [The Platform][] that could | |
37 | tokenize the Commodore BASIC programs that are part of The Platform, namely: | |
39 | But, I wanted a tool that could be included in [The Platform][] that would | |
40 | be able to tokenize the Commodore BASIC programs that are part of | |
41 | The Platform, namely: | |
38 | 42 | |
39 | 43 | * the original implementation of [Bubble Escape][] |
44 | * [DiskSumo][] | |
40 | 45 | * [Dungeons of Ekileugor][] |
41 | * [DiskSumo][] | |
42 | 46 | * the binary-loader and front-panel simulator from [SITU-SOL][] |
43 | 47 | |
44 | 48 | and none of the tokenizers I found appealed to me. `petcat` in particular |
60 | 64 | It also appealed to me to write it in a rather low-key style, without |
61 | 65 | using any of Python's "included batteries", including regular expressions. |
62 | 66 | This should make it easier to adapt to RPython or Skulpt, or to translate |
63 | to other languages, for instance Lua, as desired. | |
67 | to other languages, for instance Lua, if desired. | |
64 | 68 | |
65 | 69 | Of course, it is not very efficient, and only a subset of the `petcat` |
66 | 70 | special character codes such as `{wht}` are supported. But it suits my |
76 | 80 | implementation-agnostic — Falderal tests languages and protocols rather than |
77 | 81 | particular programs. |
78 | 82 | |
79 | `hatoucan` was written in a test-driven manner against it, but the tests | |
80 | in this suite also pass under `petcat`. And, if you find or write | |
83 | `hatoucan` was written in a TDD manner against this test suite, but the | |
84 | tests in it also pass under `petcat`. And, if you find or write | |
81 | 85 | another Commodore BASIC tokenizer, you can use this same test suite to |
82 | 86 | test it — simply add an adapter for your implementation to the |
83 | `tests/appliances` directory. | |
87 | `tests/appliances` directory and adjust `test.sh` to apply it. | |
84 | 88 | |
85 | 89 | [Bubble Escape]: http://catseye.tc/node/Bubble_Escape |
86 | 90 | [DiskSumo]: https://github.com/cpressey/DiskSumo |