Lumpbucket Posted November 18, 2003 Share Posted November 18, 2003 When I was a kid, I always wanted to design my own computer. To me, that would have been the most awesome thing in the world. Since I learnt program in many different dialects of assembler, and got a grasp of system architecture etc. I've tried a couple of times to invent my own systems just for fun. A few years ago, I invented a 6502 based games console, wrote an emulator for the Amiga and made a couple of games (TRON lightcycles with computer AI in 1 player mode, space invaders, a boulderdash engine). It was fun, but I cut a few corners. The display and sound mapped quite easily to the Amigas native graphics with a little tweeking. (I can upload that this evening if anyone is interested. It was programmed on a 68030 50Mhz A1200, and runs at the intended speed on that setup). More recently, I decided to give it a proper go. I worked out a pretty cool 6502 based computer with 8 sprites, fairly simple graphics and text modes. I knocked together an emulator in C for the Amiga, and another one for Windows/SDL (so I could write the ROM for it both at home and at work). Once the emulator got written enough to display text on the screen, I quickly bodged a simple keyboard hack into it (which I intended to do more "realistically" later) so that I could start to write the ROM. I started writing a BASIC interpreter for it. I wrote an expression parser, then implemented some simple instructions (peek, poke etc.), variables, list management. As it stands, the BASIC interpreter understands "PRINT", "INK", "PAPER", "BORDER", "CLS", "POKE", "CALL", "NEW", "LET", "LOCATE", "LIST", "RUN", "GOTO", "IF..THEN..ELSE", and "GET". The expression parser understands "=", "<", ">", "(", ")", "+", "-", "<<", ">>", "EOR", "OR", and "AND". It tokenises "*" and "/" but they are not interpreted. It IS quite buggy, but it does work. The problem with it is that it just sort of "evolved" with no design or planning at all. If I sat down and designed it properly, it would probably be a lot more stable :-) Anyway, as this project was mostly just to see if I could write my own BASIC interpreter, development on it has kind of fallen by the wayside, but I am still quite proud of what I have achieved so far, so I would like to share it with other people. The emulator is pretty basic. Just the text mode and keyboard emulation. I intended to add 320x200 monochrome, and 160x200 colour graphics, sprites, sound etc. in the future. All of this is in the attached Zip file, along with the Windows/SDL emulator (if anyone wants the Amiga emulator, which really requires a 68060 requires a graphics card, just ask). Feel free to play with the source. Oh yes, I was going to call the computer the "Condor LX" emu.zip Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.