Jump to content


Popular Content

Showing content with the highest reputation on 08/27/20 in all areas

  1. 2 points
    So after piecing together the memory map of the Commander X16 and getting the emulator working I set out to make the necessary changes in my programming language Prog8 compiler to support a second target machine architecture beside the C64. Prog8 is a cross-compiler that works on any modern machine and compiles into a machine code binary for 6502 8-bit machine targets such as the Commodore-64. I've just released an updated version that supports CommanderX16 as a second compilation target! Prog8 documentation: https://prog8.readthedocs.io Prog8 project website: https://github.com/irmen/prog8 you can download it from there as well. Some micro-benchmarks (not by me) to compare it to other languages and compilers such as cc65 can be seen here. Here is one of the simple programs that I made in Prog8 for the Cx16, it renders the well-known Mandelbrot fractal (using floating point calculations): For those interested this is the source code of the above program: %import textio %import floats %zeropage basicsafe main { const uword width = 60 const uword height = 50 const ubyte max_iter = 16 sub start() { txt.print("calculating mandelbrot fractal...\n\n") ubyte pixelx ubyte pixely for pixely in 0 to height-1 { float yy = (pixely as float)/0.40/height - 1.3 for pixelx in 0 to width-1 { float xx = (pixelx as float)/0.32/width - 2.2 float xsquared = 0.0 float ysquared = 0.0 float x = 0.0 float y = 0.0 ubyte iter = 0 while iter<max_iter and xsquared+ysquared<4.0 { y = x*y*2.0 + yy x = xsquared - ysquared + xx xsquared = x*x ysquared = y*y iter++ } txt.color2(1, max_iter-iter) txt.chrout(' ') } txt.chrout('\n') } } }
  2. 2 points
    I'll be making a release later today. Right now, I'm going through all my repos and putting out new releases as I verify their compatibility with R38
  3. 2 points
    @SerErris: I just merged all open x16-demos pull requests that had no conflicts.
  4. 2 points
    It is also much better to maintain .. most likely you will be able to replace a standard PSU even in years down the road. If it is a brick (like the C64 one) at best with multiple voltages, you will get into trouble purchasing off the shelf items.
  5. 2 points

    Version r38 ("Kyoto")


    Precompiled emulators for Windows, Mac, and Linux. This is the latest version. Older versions can be downloaded from the GitHub releases page. (Note: To run on Mac use "Ctrl-click/Right-click > Open" instead of "Double-click" due to security protocols)
  6. 2 points

    Version 0.8b


    XCI is a graphical adventure game engine for the Commander X16. It is inspired by past engines such as SCI and SCUMM, but designed to maximize the potential of the X16 and keep the games just small enough to run, and allow developers to create games without having to program in BASIC or Assembly. Learn more about XCI on the official GitHub page: https://github.com/SlithyMatt/x16-xci There you will find all the source code, documentation, and example code and templates. There is also a tutorial series currently in production on YouTube: In the downloadable ZIP file you will find the engine executable binary for the X16 (XCI.PRG) and two embedded archives of the Windows and Linux software development kits (xci.exe). The SDK is written in standard C and can be compiled to pretty much any modern platform, including Mac and Raspberry Pi. Stay up to date by watching the GitHub, and occasional builds will also be uploaded here.
  7. 1 point
    Hi everyone, while The 8-Bit guys needs no introduction, we thought the rest of the team should properly introduce themselves! I'll start the ball rolling... I'm a husband & father of 3 (furbabies), & actor-writer with a love of retrogaming. You might have seen or heard me at Perifractic’s Retro Recipes on YouTube, and I've been making retro music since before it was retro! For the fantastic Commander X16 project I'm proud to be heading up the design and branding, among other things. Here's what falls under my umbrella, along with the help of some other very talented folks: This website's creation and hosting Case design & manufacture Keyboard design & manufacture X16 Butterfly Logo design & implementation Licensing Commodore BASIC & Kernel "Just the BASICs" user guide Packaging design & manufacture BASIC screen visual design/logo... I'm super excited as David's vision of his dream computer comes closer to fruition and am proud to be a small part of making that dream come true. I look forward to chatting with you all here further! Your friend in retro, Perifractic
  8. 1 point
    I teach a small group of children the programming language Scratch and ScratchJr. While it is easy, cute, and simple, I don't quite like it. I want to be able to teach the kids more about the computer architecture in general. The 6502 is a perfect choice for that IMHO. I can teach everything there is to know using an Apple ][, C64, or X16, but that means using BASIC. Question: Should I teach C64 BASIC, X16 BASIC (similar but better "hardware"), or GW-BASIC (A very solid BASIC using the awesome PC-BASIC emulator)? What are the pros and cons and what are your thoughts? Maybe even ditch BASIC altogether? Is it a waste of time to teach an "obsolete" language?
  9. 1 point
    r38 of the X16 emulator and ROM have been released.
  10. 1 point
    Just this afternoon, I realized that when I pass “-bas my-file” to the emulator, it is TYPED IN, so to speak. If I didn’t care about compatibility with the X16, then I could front-load my program with a pile of initializations in “immediate mode” without incurring the penalty of storing lines of BASIC DATA statements. Useless in the light of wanting to support the X16 as a physical chunk of hardware, so mostly an amusing observation. Unless I use that in the place of loading data files into the RAM banks perhaps... but I don’t see the benefit there, so.
  11. 1 point

    Version 0.1.6


    NOTE: v0.1.4 seems to have fixed or reduced the severity of the corrupted dictionary in v1.3. Known Bugs: .S may give spurious results. DOES> is broken, do not attempt to use it. ________________________________________________________________ I just uploaded this to see if it runs in the try it now box. It appears to run fine, including the words that operate programmatically based on the width of the display. With some work with an effective in system Monitor program, it would be possible to save a copy of xForth including words you have defined on the console, but for practical purposes, this still requires a SAVE word to be able to save an image of the file after extending, and an INCLUDE word to load a script from a .SEQ file. Once those are written, I will be able to test to see how close to American National Standards Forth (ANS Forth) compliance this system actually comes. While it runs, it is not fully exercised, so I would be very surprised if there were not bugs. "Alpha" in the title means that there ARE bugs, though I fixed two substantial ones since the last release. Bug reports & suggested bug fixes both accepted, the first dutifully and the second gleefully. About upper and lower case: there is NO ASCII CONVERSION in this system. ANS Forth requires that ANS standard words be recognized in upper case, and its up to the individual Forth what they do about lower case. Most modern Forths are not case sensitive. This one is. So if you are in Graphics mode, do EVERYTHING in upper case. If you switch to Upper/Lower case mode, do EVERYTHING in lower case. If you enter the command WORDS to see all of the words in the dictionary, you will note some that look like /FORTH/ which is what I did when eForth had lower case words that were "platform" words that the standard Forth word in upper case was built upon. You will also see /DO/ /?DO/ and /LOOP/ as the "platform" words that DO ?DO and LOOP are built upon. No conversion also means the the line comment word \ is entered and shown as the English Pound Sterling, aka GBP, sign, _ is backarrow, and ^ is up arrow. On the command line, any character from $00 to space is treated as whitespace, as is any character from $80 to Non-Break-Space ($A0). For some brief usage examples and pointer to more about the Forth programming language, see the discussion forum posts attached to this upload.
  12. 1 point
    It was a fun exercise. If I have time, I'd like to expand it in two ways: Add code to do a "best guess" approximation of colors from the palette. Right now it's just my own fiddling with terminal colors Add a command to set the colors from one of XCI's palette files Full link: https://github.com/jestin/vim-xci
  13. 1 point
    You're a brave father! I only taught Python to my teenage son because he wanted to write games. Now he's learning C# with Unity. I'd think Python has a lot happening under the hood which may confuse a curious child... "Daddy, what does IMPORT TIME, IMPORT MATH, IMPORT OS, etc. do?" While it can be explained, it adds a whole new dimension to her learning. Having all the BASIC software and functions in ROM gives a certain comfort. Anything missing, just write it yourself! This LIBRARY making process will then help explain the IMPORT statements I'd love to watch you teach her LAMBDA functions...
  14. 1 point
    I'm teaching my 9-year-old daughter python, and it's going pretty well. Like BASIC, it has the benefit of an interactive shell, but is a better introduction to actual modern programming. At the end of the day, she has learned an actually useful language, and it wouldn't be as difficult to move on to other languages. And she can do it on pretty much any platform, so not tied to any hardware or OS. That being said, she sees what I'm doing with the X16 and she's really curious about 65C02 assembly. Can't wait till she's ready to dive into that!
  15. 1 point
    Not at all a waste of time. It's important to teach CONCEPTS, not languages. Learning BASIC is about teaching kids how stuff works. I keep seeing programmers leaving college being unable and unwilling to look beyond the language they've been taught. That's the main reason for this JavaScript everywhere madness. So I'm all for teaching BASIC, but making it clear that this is a first stepping stone. Thanks for teaching the young! We need more people like you.
  16. 1 point
    I'd just post details and updates in this thread.
  17. 1 point
    And unless you have disabled the default IRQ handler, you don't need to call $FF53. Also, the reason you have to call $FF56 to get the state is because I want to move away from magic memory locations. Even the VIC-20 had an API to query the size of the screen, but it lacked calls for more advanced functionality. For the X16, I want to expose as much as possible/necessary through calls, so I have more freedom changing the memory layout in the future.
  18. 1 point
    I'm maintaining it. Well, until just now. Now you are. I maintain all four repos: x16-emulator, x16-rom, x16-docs and x16-demos. I tend to not multi-task too much, and I had been busy with other projects for months recently, which is why I haven't maintained x16-demos for a while. I am happy about any help with any of these repos. Of course I'm interested in code contributions, but also code reviews and general cleanup patches. And in the case of x16-demos: Someone/people who help in keeping the repo in order; mark demos as working/non-working with the current emulator, accept new additions and maybe remove obsolete demos. My plan for x16-demos has always been to compile it into demo sd card image once day that comes with the emulator.
  19. 1 point
    The ROM is designed in a way that (unlike on the Commodore 64), it should not be necessary to read/write any magic zero page ($0080-$00FF) or KERNAL ($0334-$03FF) variables. Well, at least this is the plan. I'm aware that not everything that people want to do is possible just using API calls. Whenever you run into this, please file an issue on GitHub against x16-rom. In this case, what you want is an API to inject keys into the keyboard buffer, which is a fair request. File an issue!
  20. 1 point
    I didn't realize that keyboards had to have dual control firmware to handle PS/2 + USB. Learn something new every day. I've got one of the X16 WASD keyboards, and I love it, by the way. I use it every day for work, and non-work, and X16 hacking. Just icing on the cake that it works in both modes. With Cherry switches I guess it will last for the rest of my life. I found it a little worrisome, because I *already know* how to read the C64's joystick ports -- heck, I remember that they're at $DC00 and $DC01, and I haven't programmed for them in 34 years. But, I understand the argument for MOAR BUTTONS, and I think that opens up interesting stuff you can do, so, OK. I'm also glad that there are pin headers for an additional two controllers, but that's just me remembering M.U.L.E. Hmm, there's another game I want to write for the X16. I should have a list.
  21. 1 point
    An opportunity to what, exactly? To have games limited to four directions and one fire button, and lose 5-6 out of 14 GPIO from the User Port? That's mostly the opportunity to lose game developers for the CX16, because once you've gotten used to developing for a controller with an adequate number of inputs, going back to the Atari joystick with single fire button is very constraining.
  22. 1 point
    Michael, RE: disabling load/save from banked RAM... it looks like it is disabled for using the sdcard, but it appears to work without it (e.g. using the host file system). Can you let us know how the load/save kernal calls are intended to operate on the final unit?
  23. 1 point
    My name is Kevin and i like programming for old 8 or 16 bit computers the sheer amount of control over the hardware is so much different then today's high level programming. I also like the challenge of overcoming the limitations of the system it aint easy to write efficient code but the satisfaction is way bigger. I cant whait for the Commander X16to come out i think ill buy the phase 1 version because ad the 8-bit guy said it will be hackable and i cant whait to mess around making games and expansions for the X16. Keep up the good work! - Kevin
  24. 1 point
    I'm very very happy about pull requests. If you look at the release notes of the emulator and the ROM, you can see that many different people are contributing these days. Most emulator changes are done by people outside the core team. All reviewing and merging gets done by me, currently. I work on all parts of the ROM: KERNAL, BASIC, FPLIB, DOS, GEOS, MONITOR, CHARSET – and that's where most of the remaining work for the final ROM has to be done, while the emulator is in quite a good shape. That's why I only task switch to the emulator about once a week or so, looking at all pull requests that have piled up. But to say that again: I an very very happy about pull requests. And I'm also very happy about people pitching in and commenting on existing pull requests, e.g. saying that the code looks good to them, or what they would change, so I can spend less time reviewing the code.
  25. 1 point
    I'm Ellery from Brazil and a longtime enthusiast for retrocomputing. In my collection I have: Apple ][+, Apple ][e, Apple ][ GS, Macintosh Plus, PowerMac G4 Quicksilver, PowerBook G4 Titanium, Intellivision, Colecovision, and the venerable Atari 2600 all in working conditions. I also used to have an Amiga 500, IBM XT, IBM AT, SPARCstation 4 and a NeXTstation "Whitebox". I cut my teeth with 6502 programming (BASIC and Assembly) during the 80s (Apple ][+), programming my own EPROMs, patiently going thru countless boot-tracing, and submitting my discoveries to COMPUTIST magazine. Those were the days... I eventually "graduated" to SPARC Assembly and C during college but never forgot my 8-bit days. Everytime I learn a new computer language, I write an Apple ][ emulator. So I have one in C, C++, Java, and Python and I'm currently working on a C# version. During my coding, I always wondered how I could improve the Apple ][, especially graphics, video, and memory capacity (and maybe dual-CPU?) while maintaining the simplicity of the 6502-based architecture. Fast-forward a few years I find this wonderful project! Not only is it what I dreamed of, it actually will be a REAL product. As a true die-hard Apple fanboy, I will admit today: Commodore 64 was superior to the Apple ][. But damn, that 1541 disk drive was pretty sad. Anyways, I look forward to having a Commander X16 soon! (I wouldn't mind a 6502 running at 100MHz or faster!) P.S. I'll start learning the C64 system ASAP and try to code a flashy demo!
  26. 1 point

    Version Alpha Demo


    Alpha demo of Cavy's Quest - a point-and-click adventure game created using the XCI game engine. The current graphics are placeholders while the final graphics are created for the first beta release of the demo. Simply load and run XCI.PRG from BASIC, and all controls are done through the mouse. Premise: You are a guinea pig named Penelope who yearns for something more than a life in a cage. Explore your environment and solve puzzles to make your dreams of freedom come true.
  27. 1 point
    Hey there, I'm a game developer originally from Rotherham, UK. I remember when Rotherham was the home of Gremlin Graphics and Krisalis Software situated on Moorgate Road in the centre of town, and I have fond memories of Micro Fun in Rotherham market where me and my cousin bought games. What a time ! In my pre-teens and teens I used to play games and code on the C16, Acorn Electron, BBC Micro and (my favorite) the C64 on which I also dabbled with Assembly language (anyone remember the Assembly program with the garish pink colours? I can't remember the name it was like 30 years ago when I was 10). I switched to Amiga (a favorite too), then PC (*cried*), then made the switch to Linux based PC's in 2010. Now I write games for Android and iOS. Always loved the simplicity of assembly language and direct hardware manipulation. So happy to learn of X16 last year. Exciting stuff
  28. 1 point
    There's nothing wrong with that, for those that want "real" hardware. Personally, I see FPGA hardware as being just as 'real" as discrete chips, with the added benefit that they can be improved much more quickly. The MiSTer is nearly the perfect computing platform, except that it has maddening holes when it comes to connectivity. (The networking relies on a PPP shim going through a fake serial port, and there's no actual serial port connectivity for people who want to connect up RS-232 devices.) And since much of the hardware work is already done, the MiSTer is a great developent platform for fantasy computers, precisely because you don't need to worry about things like "I wired the video connector backward, and now I have to wait 8 weeks for the PCB manufacturer to run off a new version. of the board." In fact, I have a real Commodore 64 (three, if you count my 128), but the machine I prefer and use the most is my Ultimate 64, which is just a big FPGA board stuck inside a 64C chassis.
  29. 1 point
    It's Dave's dream computer, and it was a design goal from the start to avoid FPGAs. He eventually settled on an FPGA for the VERA, but only because none of the other video chip/card solutions were viable for his vision.
  30. 1 point
    Hi, I'm Tee My brother and father were really into computing when I was a kid so I didn't get at the computer much. My Grandpa (electrical engineer b. 1919) and Grandma (physics graduate b. 1923) used to programme in BASIC when they got bored. I also once ran round a house with an Alan Turin award on my head (in my defence I didn't know it was something precious at the time) So, I got to watch computing but not really do any as a kid. I got addicted to watching 8-bit stuff on Youtube and I'm trying to teach myself BASIC with PDF VIC-20 and C64 manuals, and now have X16 emulator to play with
  31. 1 point
    Hi everyone, I've just had this project pointed out to me, and boy am I pleased about that! I wrote extensively for the Commodore machines back in the 80's, especially the 264 series. Some of you may remember my games like Icicle Works. I just released a new title for the Plus/4 - The Pit, so I am very much back in retro mode! I can't wait to get my paws on one of these and do some serious damage! A turbocharged 6502, coupled with awesome sound and graphics - what's not to love? Cheers, Doug
  32. 1 point
    Hello everyone I'm from the Netherlands and grew up with a Commodore-64 in the 80's that led me on the path of being a professional software designer and developer nowadays. I have always remained interested in retro computing and what's going on with the C64. I'm following several youtube channels related to this obviously the ones from most of the well-known guys here it seems! Also I've written several retro-computing related pieces of software including a Boulderdash clone and a simple C64 emulator. The most significant reason for me to sign up here on the forum however, is that I'm also the creator of PROG8: my own cross-compiled programming language for the C64. Over the last months I have been working in my spare time on improving the architecture of the compiler and the performance of the generated 6502 code. There's still much work to be done. However, I finally thought it was time to see what's going on nowadays with the CommanderX16 and I have decided to get to work to support it in my compiler! So that is what I will be working on next! First things for me I guess is getting the emulator working, figuring out how the memory map layout is and how to write text to the screen. I would be very excited if other people perhaps also will try out my language and compiler. Here's the documentation of PROG8 if you're interested. The Github project for it contains a bunch of example programs as well.
  33. 1 point
    A huge shout-out to @Jestin for making this vim plugin for XCI: https://github.com/jestin Not only will it do syntax highlighting like my Atom package, it will also do coloring of pixel-nibbles in sprite and tile hex files: I never expected to create a language for 8-bit development in the 21st century, much less have people start developing tools for it!
  34. 1 point
    Hello there! It is a very exciting project, and everything I 've seen so far looks really great! Congrats for the logo design, it feels somehow futuristic and retro at the same time! The machine front design is unique, and the keyboard fits to that style. The specs looks impressive. May even surpass the ZX Spectrum Next :-D (fight!!!) Keep up the good work :-)
  35. 1 point
    Hello fellow 8-bit junkies. Quite excited about the design goals of this project and the possibility that it could turn into a big deal, considering the community of well-know, well-respected, authoritative, and authentic geeks bringing it about. I'd love to see a massive worldwide community spring up around a love of (addictive) BASIC programming and off-the-wall game design concepts, similar to what the C64 engendered in its heyday. To paraphrase Han Solo, I got a good feeling about this. After scraping together every penny I had plus raiding the couch cushions I bought my first computer, the Interact Model 1: http://oldcomputers.net/interact.html but the less said about that the better. Just kidding. It was mind-blowing to own my own computer, even if the hardware was slow and the hard-plastic-buttons-on-top-of-a-membrane "keyboard" was atrocious. The BASIC language (loaded from tape) was actually pretty good and I was able to get very comfortable with programming in BASIC. My second computer was a VIC-20 with 3K memory cart, purchased by money order and snail mail from Protecto Enterprises in the Spring of 1981. I still recall with great clarity the sense of wonder I felt on unboxing the VIC and seeing for the first time those petscii characters stamped on the front of the keys of the REAL keyboard. I was immediately enamored. Soon after I was unpleasantly shocked by BASIC v2.0, after having used the Interact's BASIC with its full set of drawing commands. Where the heck were the all the commands I would need for drawing on the screen? Bogus! Thankfully the VIC came with an amazing user manual that quickly got me past that initial shock at the spartan nature of BASIC 2.0. Also the wonderful full-screen editing with the cursor keys was a big step up. And being able to redefine the character set into castles, aliens, and rockets was the best thing ever. I skipped over the C64 (though a housemate at University had one that he let the rest of us use when he wasn't working on his degree) and bought a C128. Again, mail order. I remember sending off payment as soon as they started taking orders and then waiting like 6 months for it to arrive. BASIC 7.0 was incredible. Loved the built-in sprite editor and the wealth of IF-THEN and LOOP statements, not to mention finally having a good range of drawing statements once again. I programmed a number of titles for the 128 and actually got a few of them published by Compute!'s Gazette back in the day. Years later I picked up a Plus4 at a thrift store and fell in love all over again with the full-featured BASIC 3.5 on that system. My favorite case in both the form-factor and the color scheme of all the 8-bit CBMs. The Plus4 feels like a deluxe VIC-20 successor. Anywho, that's my 8-bit saga in somewhat condensed form. I'm looking forward to getting my hands on the Commander X16 and sharing BASIC tips and tricks and creations. A round of applause for David Murray and friends, everybody.
  36. 1 point
    I have made a hilariously bad 3 stage image of what I have in mind. Many aspects of it, include aspect ratios ba dum tss, are way off, but gives an idea. Car heading toward a turn, turning, and coming out the other side.
  37. 1 point
    I've been using acme, simply because it was the easiest to get started learning 6502. As for my development environment, I just use vim and a simple Makefile with build, clean, and run commands. I use vim at work all day (I'm one of those guys), so this feels the most natural for me. Shameful secret: sometimes just for kicks, I run vim from cool-retro-term and feel super nostalgic.
  38. 1 point
    The language-xci package is now published: https://atom.io/packages/language-xci You can simply install the package from within Atom by searching for "xci". It's the only thing that comes up!
  39. 1 point
    Sam's Journey would be amazing on the Commander... it's already amazing on the C64, but imagine it with VERA and an 8MHz CPU.... A killer app or game would definitely help the system get attention...
  40. 1 point
    I would be happy to contribute a title. Exclusive or not...
  41. 1 point
    And in worst case there are also exist active USB-PS/2 keyboard/mouse converters. So if somebody have their favorite USB-only keyboard or mouse, they still can be used with X16.
  42. 1 point
    I'm using C and the cc65 toolchain. For grins I'm a little curious about using Rust for the X16 at some point. There is an alternate Rust compiler (https://github.com/thepowersgang/mrustc) which compiles Rust code into C which could then be compiled with cc65. There was a proof of concept demonstrating this for the C64 (with patches against mrustc and cc65).
  43. 1 point
    Which of these sockets has the 6502 in it? I would like to make sure my accelerator will plug into it before going to production.
  44. 1 point
    Thanks for sharing this! I have started watching the tutorials , for someone like me who would like to create something but has very little knowledge of BASIC and none at all of assembly language this is an ideal solution To help make the creation of sprites a little easier I've made a little sprite editor in excel, you put the values in the grid and using the palette you've defined it shows you what the sprite will look like. I've used your sprite from the example game as an example https://drive.google.com/file/d/1qo2sMf3W6AlYdl5eMp5xlsAgIwYAgEZo/view?usp=sharing
  • Create New...

Important Information

Please review our Terms of Use