Jump to content
IGNORED

Just thought I'd share this with you


Lumpbucket

Recommended Posts

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" :D 8)

emu.zip

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...