Cool, thanks for giving it a go.NormanDunbar wrote:I gave it a try out, not bad!
I spent a considerable amount of time insuring that each character is exactly the same, pixel-for-pixel, to the ZX80/81. I did run it side-by-side to the EightOne emulator and got the same characters. So they should be the same. You can run an online web one to quickly see they align:NormanDunbar wrote:Question, when I ran the test_bas program, it does give a checkerboard pattern, but it doesn't look like the old ZX-81 checkerboard patter I remember, I wonder if it's correct?
http://www.zx81stuff.org.uk/zx81/jtyone.html
The character translations are all in there but BASIC isn't completely hooked into that part yet. So if you did a loop where you try to generate them on the fly (I forget what the ZX81 BASIC keyword is for that) that likely would give you "?" when it doesn't understand. What would work is to have each character separately in a PRINT:NormanDunbar wrote:I did a quick test too, printing all the ZX-81 characterset from 0 to 255, this is what I got but I see none of the special "graphics" characters in there, should I have seen them, or is that a "still to come"?
- In EightyOne, write a simple BASIC program composed of a single PRINT
- Have each of the 128 characters generated in that PRINT statement
- Save the program as a .wav file
- Convert it to a .p file
- Use zxtools to grab the text file and save it
- Load that into the ZXSimulator and run it...voila, you will see all 128 ZX characters
BTW, the ZX81's character mapping is a little funky and I haven't dived into that yet either but in the end I won't be tying in the keywords. So I will only worry about 0-63, 118, and 128-191:
- The character set has 64 unique glyphs present at code points 0–63. With the most significant bit set the character is generated in inverse video; corresponding to code points 128–191. These 128 values are the only displayable ones allowed in the video memory (known as the display file). The remaining code points (64–127 and 192–255) are used as control characters such as 118 for newline, or uniquely to Sinclair BASIC for keywords, while some are unused.