EightBall
EightBall copied to clipboard
The Eight Bit Algorithmic Language for Apple II, Commodore 64 and VIC20
Copy `disconnect_ramdisk()` and associated code from `EDIT.SYSTEM` to any and all Eightball executables that use auxiliary memory.
`tetris.8b` uses Apple II lo-res graphics and other Apple II specific low-level hardware access. Should do a port to C64 and VIC20 also!
The reference implementation of the VM is not optimized for speed and has loads of paranoid checks. Once things stabilize I will attempt an optimized version in 6502 assembly.
Need a way to invoke a machine language routine from EightBall. It would also be good to be able to pass in register values (A,X,Y). This should work for both...
I am using zero page locations for the VM registers and evaluation stack on Apple II, but I have not done this for Commodore VIC20 and C64 yet.
At present I am setting memory limits manually. I review the cc65 `.map` file and find the upper limit of the memory used by cc65 and then set my HEAP1...
For some reason EightBallVM is not working on VIC20. Seems to be memory corruption.
At present bytecode uses absolute addresses for branches / jumps and is not relocatable. It may be better to use relative branches / jumps so code can be readily relocated...
This would be nice: ``` call foo("Hello") end sub foo(byte s[]) pr.str s; pr.nl endsub ``` One fairly easy way to implement this: - New VM instruction to store string...
Right now the comment character ' is handled as a command, which means that a semicolon is needed to comment after a statement: pr.msg "Hello" ; ' Say hello This...