November 28, 2024, 01:25:19 PM

sharing NEO6502 code

Started by Hugh Aguilar, September 26, 2024, 04:54:36 AM

Previous topic - Next topic

Hugh Aguilar

I'm planning on putting up a website to distribute my NEO6502 code after I write something worth distributing, and I would distribute other people's programs too. Does Olimex already have a clearinghouse for NEO6502 programs?

It would also be good to distribute compilers and/or code libraries. I'm writing a Forth system that I would like to distribute to NEO6502 owners.

LubOlimex

Technical support and documentation manager at Olimex

Hugh Aguilar

Quote from: LubOlimex on September 27, 2024, 04:04:53 PMSounds nice.
I bought the NEO6502 on the assumption that it was a programmable video-game computer. It isn't though. I already mentioned the lack of a heartbeat timer that is necessary for games to run at a constant speed irregardless of how much is happening on screen. The Commodore-64 had its "jiffy clock" running at 60 Hz.. The Commodore-64 also had double-buffering and a raster interrupt so the screens could be swapped during the vblank, so the user doesn't see the image being drawn. The raster interrupt could also be used for switching video modes in the middle of the screen draw. I used this to switch into text mode for the bottom 3 lines of the screen. The NEO6502 doesn't have any features necessary for video-games.

I remember that MS-DOS came with the Gorilla game written in QBASIC. That didn't need a heartbeat timer because there was only one moving object (the banana). The NEO6502 comes with BASIC, so maybe you can get Gorilla running on the NEO6502. lol I didn't spend all that money on the NEO6502 so I could throw bananas at a gorilla --- it wasn't much fun in the 1990s either.

So, what is the NEO6502 used for? If I did have a website to distribute NEO6502 programs, what would these programs do? I had originally expected my Forth system to be used for writing video games (I was going to write Centipede or something similar), and I expected a lot of people to also write video games that they would share. This turkey isn't going to fly.

Most of the emphasis in NEO6502 programming world seems to be Apple-II emulation. The Apple-II was primarily a business computer (VisiCalc was the killer application) and also used for educational programs ("Where in the World is Carmen Sandiego," etc.). All of this is available on Windows and Linux computers, and a lot better. Why would anybody want to run Apple-II software in the 21st century? The Apple-II wasn't a very good computer in the 1980s, which is why the Commodore-64 killed it in the market --- none of that Apple-II software is worth running now --- also, all of that software is proprietary, so it is actually illegal to distribute it on the internet and run it on the NEO6502, although I doubt that anybody cares (the original programmer has likely died of old age).

I have already started my Forth system, and I will finish it. My intention is mostly to prove that I can write a Forth system that generates faster-executing code than C compilers generate. I will likely just use the NEO6502 as a development platform for W65c02 micro-controllers. The idea would be to breadboard I/O on an expansion card, then when the program is working on the NEO6502, transfer it over to a custom W65c02 board. This isn't very useful considering that there are plenty of micro-controller boards available for much more powerful processors (MSP430, STM8, etc.), that provide a lot more capability. Building a W65c02 board may be easier though because the W65c02 is still available as a big 40-pin chip with big leads that can be soldered by hand. This is the only use that I can think of for the NEO6502. Is there anything else that it can be used for?

A related question: What is the Raspberry Pi used for? It is not a video-game computer either. I have heard of the R/PI being used for a home-security system. That is soft real-time. I'm a lot more interested in hard real-time, such as motion-control --- the W65c02 can do this, but it lacks a multiply instruction needed for the PID algorithm (the i8032 has only an 8x8 multiply, so it is not much better).