Jump to content


Popular Content

Showing content with the highest reputation on 01/19/21 in all areas

  1. 3 points
    Hi all, I recently stumbled onto this website. My reason for being here is mostly to track progress, and as a potential buyer when x16 is for sale. I really like the project, it is almost like looking forward to the next cool computer, but a next cool computer in an alternative past. I am a developer/techlead myself, doing solutions for b2b. But as a Hobby I have spend tons of time playing with and programming the C64 and the Amiga, programmed basic, c & assembly 6502/68000. Also other weird and wonderful languages, and a bit of hardware soldering. No Python though, not really my thing. Right now though I am doing "hobby coding" in Javascript, a X16 sprite exporter to my paint program, and deciding if I will do some c or ASM stuff as well for the X16, or keep to BASIC. I got here when I was playing around with BASIC a bit. I started at a web page where you can directly type in and run Apple basic, but soon ended up modifying Apple basic to become more like commodore basic. (I was adding things like sprite support and so on to the Basic, and a commodore 64 sprite displaying capability. Anyway while doing that I happen to stumble on the X16 emulator webpage, which already had all that. So yeah apple basic with c64 sprites is how I got here I really hope the web ide / emulator will continues to be developed, as I like it a lot, almost more then the "real" emulator. Fantastic project otherwise. keep up the good work! Same for the YouTube channels 8-bit guy, and retro recipes, just a tad to addictive Greetings from Sweden
  2. 2 points
    I heard about this project by following David's 8-bit YT channel. My main hobby is ham radio (call sign DL6MFJ ), but I also do some analog synthesizer stuff and have a collection of old and/or scientific pocket calculators. At the time I'm doing a restoration of an old CBM 3032. All the best for 2021 and the X16!
  3. 2 points
    We're supposed to use the KERNAL calls in published software, because there's no guarantee people will be using the SD card for loading programs. The system includes support for IEC drives, for channel I/O to other devices via RS-232, and other devices vis plugin drivers. Using the FAT32 code directly means all that functionality is unavailable. If you feel performance improvements are needed, the most useful thing to do might be to request a public API on the Commander X16 ROM Github page, so a system can be designed that's backward compatible with IEC and addon device drivers. That way your program doesn't stop working when the ROM changes (and it will change), and the rest of us can take advantage of the same functionality without that same risk.
  4. 2 points
    Well, that's "sort of" correct. From what I've read, there is some BASIC code in the KERNAL ROM, so the KERNAL is more like 6K and BASIC is more like 10K. When you add in the graphic commands and the other enhancements, I'm not surprised BASIC has already grown beyond 16KB.
  5. 2 points
    I saw this basic cross-compiler on YouTube "8-bit Show and Tell 2". This is a cool project and I was curious what others thought about it, especially regarding the possibility of getting it to work with the X16. It looks like some of the memory locations are configurable but not all based on what I was reading. There is a github page with source and they are looking for contributors. It looks like some of the code is written in D (https://dlang.org/) and some in Assembly. It may also be possible to use this project as a guide for developing a similar branch/offshoot for something a little more tailored to the X16. The cross compiler is using a grammar parsing library that could be helpful for that: https://github.com/PhilippeSigaud/Pegged https://xc-basic.net/doku.php https://github.com/neilsf/XC-BASIC Compiler Options: https://xc-basic.net/doku.php?id=compiler_options Memory Layout: https://xc-basic.net/doku.php?id=memory_layout Examples: https://xc-basic.net/doku.php?id=examples
  6. 1 point
    I've been working on a simple text editor for some time, and uploaded it to Github today. The editor is heavily inspired by GNU Nano, but not intended to have all its functions. It's just too much work in 65c02 assembly, at least for me At this moment basic editing works more or less, and the program is fairly stable. Text entered by the user is stored in banked RAM. File handling waits until the emulator supports reading and writing sequential files. Check it out on github https://github.com/stefan-b-jakobsson/x16-edit I also include the binary for my 0.0.1 release. It's tested in emulator version r37. x16edit-0.0.1.prg
  7. 1 point
    Glad to see that a highly desirable community computer is about to be born. I would like to buy one (or a kit) once its finished. The big problem is that I'm in Europe (Germany). That means everything worth more about 25$ that comes from overseas must pass the customs. Everything electrical must have a CE-label otherwise the customs will either send it back or destroy it. Are there any thoughts on getting a CE-label? Basically it is a self declaration of the manufacturer/seller that the item meets all rules that apply in the EU. There are no really ways to circumvent this, but one trick is to find an importer in a EU country. So the end user buys it from there, thus passes no customs. The next thing is that the video out seems to be NTSC only. A PAL version would be great, this would let the EU users use their old CRTs. Are there thoughts on other character sets other than us? I don't bother about the power supply, that is something one can buy here or DIY.
  8. 1 point

    Version 0.6


    Here is the Mandelbrot version of my Julia Set program, coded in assembly. Again, many thanks to the forum users here for their guidance, as well as the many YouTubers with their excellent tutorials on 6502 assembly language. It's a lot faster than the BASIC version, but nevertheless, benefits from being run in warp mode. Now in colour, with thanks to: VERA Overview (8bitcoding.com) NEW VERSION NOW WITH MOUSE CONTROLS! When the image has finished rendering, click the left mouse on the area of the screen you wish to zoom in to. To change the detail settings (cycle between Low, Med, High) click the right mouse button. Poke around in the old version... Try copying and pasting the following groups of POKEs to explore further (not all at once, just each paragraph in turn!): POKE $D6B,$19:POKE $D6A,$64:REM FX=6500 POKE $D6D,$13:POKE $D6C,$54:REM FY=4948 POKE $D6E,$00:POKE $D6F,$FF:REM FX=POS,FY=NEG POKE $D7B,$00:POKE $D7A,$01:REM STEP=1 POKE $D7C,$FF:REM ITERATIONS=255 SYS2061 POKE $D6B,$0F:POKE $D6A,$A0:REM FX=4000 POKE $D6D,$00:POKE $D6C,$00:REM FY=0 POKE $D6E,$FF:POKE $D6F,$FF:REM FX=NEG,FY=NEG POKE $D7B,$01:POKE $D7A,$F4:REM STEP=500 POKE $D7C,$FF:REM ITERATIONS=255 SYS2061 POKE $D6B,$0F:POKE $D6A,$878:REM FX=3960 POKE $D6D,$03:POKE $D6C,$E8:REM FY=1000 POKE $D6E,$FF:POKE $D6F,$FF:REM FX=NEG,FY=NEG POKE $D7B,$00:POKE $D7A,$32:REM STEP=50 POKE $D7C,$FF:REM ITERATIONS=255 SYS2061 To use the POKES above in the web emulator, first click the X in the top right corner of the web emulator. Paste the POKES above that you want to use in to the text field to the left, replacing what's already in there, then click the Run button. Individual addresses that can be poked: $D6A 30 75 .word 30000 ; FX $D6C A8 61 .word 25000 ; FY $D6E FF .byte $ff ; FX SIGN ff = negative $D6F FF .byte $ff ; FY SIGN ff = negative $D7A A8 61 .word 25000 ; STEP (lower=higher zoom) $D7C 10 .byte $10 ; ITERATIONS Old poke codes for the colour PETSCII version: step: POKE $0D3D e.g. 50 for a step of 0.05 (smaller number, higher zoom) iterations: POKE $0D3F e.g. 30 iterations about right, higher = slower start x: POKE $0D2F, normally 8 (for -0.8) - nicely centred at low zoom start y: POKE $0D31, normally 12 (for -1.2) - again centred at low zoom Old poke codes for the PETSCII version: step: POKE $0cff e.g. 50 for a step of 0.05 (smaller number, higher zoom) iterations: POKE $0d01 e.g. 30 iterations about right, higher = slower start x: POKE $0cf1, normally 8 (for -0.8) - nicely centred at low zoom start y: POKE $0cf3, normally 12 (for -1.2) - again centred at low zoom You Tube video of this in action: Commander X16 - 6502 assembly demo - Mandelbrot set - YouTube Commander X16 - Fractal Zoom Demo - 6502 Assembly - YouTube
  9. 1 point
    https://www.hackster.io/news/tiny-3d-printed-dec-vt-102-hides-a-fully-functional-esp32-powered-pdp-11-minicomputer-ac427f15b19d I just saw this and thought the folks here would appreciate it.
  10. 1 point
    Hello! My name is Damian, I'm a 47yo Graphic and Web Designer and Front-end Developer from Madrid, Spain (though I was born in Argentina). I have a 16yo son. As a lot of you, I started with BASIC on a TI 99/4A aged 11, then on a Commodore 64 my father bought us. I also made a few things on a Timex Sinclair 2068 that my cousins had, and played on a friend's Commodore 128, and then an Amiga 500. Later in life, when I was around 20 I bought a second-hand Mac Plus, and I've been a Mac user ever since (kind of like Adrian, from Adrian's Digital Basement, I've have almost no PC contact, except in the professional space). I saw this project on the 8-bit Guy's channel, and was really happy that it got traction, because I've been thinking of something similar for a long time. My idea was called "Maelstrom Color Computer" and I even made a logo for it: But I also wanted to make a retro-computer with BASIC and instant-on features that included a case with integrated keyboard, in the line of the Home Computers of the 80's. The thing with this is that everything related to plastic injection is so expensive that I think it's highly improbable that such an idea can be made in the hobby scene. So, I'm just happy that this project is alive, and will follow it with great interest. Since I never learned to program in assembler for the Commodore, I'm interested in learning this time around, so I'm watching the videos by Matt Heffernan, and found the Easy 6502 site. I hope I can learn enough and make something interesting. I want to specially praise the work done by Perifractic with the logo, since I find it wonderful. I like it more the more I look at it. Kudos! Other than that, I can say that a few years ago I learned how to solder and taught myself a bit of analog electronics, enough to build my own guitar pedals (I already built around 35!), and I'm designing my own guitar pedal circuit (a combination of booster and overdrive). And also recently bought a Resin 3D printer and I'm planning to use it to help me create my own pinball machine, using the Open Pinball Project platform and guides. It's a long and difficult project, but I'm really excited about it. I invite you to visit my site (it's only a single page with a Javascript animation, but I think you guys may appreciate it): https://damianvila.com And if you want to know a bit about things I made in the past for other projects, I made a little page with a few of these works, that you can see here: https://damianvila.com/hodgepodge/ or go to my Dribbble account: https://dribbble.com/damianvila Thanks, and sorry for the lengthy introduction. See you!
  11. 1 point
    The computer definitely has enough power to run something of that scale. I ran Turbo C++ on my 8MHz 640K XT clone, and the Commander will arguably be about 2-3x faster than that machine, for most purposes. I've been examining KickC over the weekend, and I've been adding some libraries to handle disk I/O. With the open nature of the libraries and the quality of the assembly code it generates, that might be a good platform for developing windowing libraries. ** update: after looking at the assembly KickC generates, I don't think it's the best option for ROM resident routines, although I think its console I/O code is more than enough for writing statically linked code.
  12. 1 point
    AFAIK, there was never a Turbo Vision like UI for the C64. The C64 didn't have a mouse as standard hardware, and the 1351 was actually fairly uncommon and relatively expensive for what it was... and GUIs like TV are really fairly awkward to use with just a keyboard. It's certainly possible, but it's frustrating and kind of pointless... there are definitely better ways to structure menus for keyboard based input. (I'm assuming you are talking about the psuedo-GUI used in Borland's DOS IDEs.) There was also a similar system bundled with Visual BASIC for DOS, which was super easy to use and made DOS GUIs very simple to create. I seem to recall one or two Commodore programs that used similar text-based GUIs, but nothing was ever available as a pre-packaged toolset. If you're interested in something like this, you'll probably have to build it from scratch - because anything developed when the C64 was king is likely to be based on obsolete practices and standards anyway, not to mention the fact that the Commander architecture has diverged far enough that revising an existing Commodore based library is likely to be as much effort as a ground-up development effort.
  13. 1 point
    VERA PSG is definitely not as powerful as SID. Like mentioned before, there are no hardware supported ADSR envelopes and no filters. I wrote a music player with software envelope support that can be called from BASIC programs (and of course also from assembly or C) with some predefined envelopes and ability to test your own. I also wrote stripped down version with four simple sound effects for BASIC programs. I use standard VSYNC interrupt to update the envelope so it can only be adjusted 60 times per second. They both come with source code if you want to tinker with it. Music Player: https://www.8bitcoding.com/p/music-player-library-for-basic-programs.html Sound Effects: https://www.8bitcoding.com/p/simplest-sound-effects-library-for.html
  14. 1 point
    XC=BASIC is able to compile to platforms other than the C-64, however that branch of code is not yet officialy released. VIC-20 support is somewhat done and X16 can be added, too. It is relatively easy because the compiler's source code (the one written in D) does not need to be changed, only those .asm files that are platform-dependent must be copied and ported to the X16. It's basicaly a standard library that's less than 1K. If someone would like to contribute with code, I'll be happy (and very grateful) to invite you to the project. I'll also explain what exactly needs to be written. If anyone interested, let me know. Thanks
  15. 1 point
    Certainly. You could do an SPI interface and plug in a RPi0 supported by a Kernel vector handler on device 9. Make ATN into /SEL, DATA into MOSI and /SRQIN into MISO. As long as you refrain from using tho other IEC device numbers, you should be fine.
  16. 1 point
    Get the full-size image here and set it as your background to show that you are a l33t programmer
  17. 1 point
    I hail from the Montreal suburbs, I'm just darn happy to be here! I've been following the Commander X16 for a little while now and it just brings back memories. My first PC experience was a TI-99/4A in the early 80s then we got a Commodore 64 (which I believe is still functioning but in boxes in my parents house). That C64 brought me right into grade 7 when we purchased a 386 but still so many memories of the 64 and typing programs from Compute's Gazette. I've worked in various computer stores, corporate IT, sales, service technician, software trainer and software architect. Now I like to tinker with electronics and hardware and hoping to at some point find some retro hardware lying around somewhere and restore it.
  18. 1 point
    Using BNE instead of BRA or JMP is a way to automatically terminate printing if the string ever goes above 256 characters. Once X contains $FF (index of the 256th character), and the INX is executed, the value in the register will wrap back to $00. The Z flag in the processor status register is set to indicate a result of zero. Since BNE branches only if Z is cleared, the branch never sends the program back to "Loop" to repeat for any more characters, and falls down to the RTS. If you didn't use BNE, then printing a string that's 256 or more characters long will cause the loop to never end, repeatedly outputting the first 256 characters over and over. Unless the interrupt handler somehow modifies the string so that a terminator ($00) is present, you have to reset the machine.
  19. 1 point
    You can... but why? The User port is also connected to a VIA, and it's got more pins available. Everything the IEC port can do is also possible on the User port... but without the restrictions of only one data pin.
  20. 1 point
    I actually had similar thoughts - I'm from Switzerland where the situation sometimes is in other ways complicated. But - for Switzerland a CE label is not required for customs. So at least I could get it in here, although customs and taxes (VAT) will likely cost around 100€ in total. My brother is working at customs - he for sure can help to "optimize" the declaration. So - if you live not too far from the border... you could pick it up here. Sending a parcel would not work - because of the missing CE label. I briefly thought about being an importer to provide the CE label, but for this you need to be registered with a so-called "notified body". I'm working in the medical device industry - I know about this stuff. A quick check showed, that this would be impractical, we are talking thousands of € just to get started. Then there is the risk with the German "Fernabgabegesetz" (online purchases), "Produkthaftung" (product liability) and "Gewährleistung" (2 year warranty) one would take to establish a business. No wonder very few do this... A second option would be a kit version or a pre-assembled motherboard. I think CE labelling is not required for those as it would be components, not products.
  21. 1 point
    Slightly optimized... Thanks to @StephenHorn and @SlithyMatt
  22. 1 point
    Does the assembler understand capital letters for the register names?
  23. 1 point
    I think for the second argument, the device, it needs to be two digits, so However when I try that, I just get "I/O ERROR". It may be that the monitor save function doesn't work presently. The last I knew, the monitor was in a buggy state since changes were made with the way banking works in the kernel.
  24. 1 point
    I have already created a pull request to add HEX$ and BIN$ https://github.com/commanderx16/x16-rom/pull/176
  25. 1 point
    Certainly. Horses for courses. Someone with a UART on an expansion card may have the User Port free. Someone with a card with 2 VIAs on it can have a full parallel port, a two serial shift register serial port that should conservatively support 38.4kbps, and still have the user port free plus something like 16 free GPIO. Someone connecting to an EPP device on the User Port without any expansion cards might be looking for the fastest & cheapest way to use the IEC port for the job. One thing I have zero interest in trying to recreate is my daisywheel printer that sounded like a submachine gun with a silencer, but the EPP box on the User Port, I do have some interest in that. So flexibility in options is appealing.
  26. 1 point
    Just a little tease for all you loyal Commandos of how the machine is looking in the user guide illustrations:
  27. 1 point
    If you are trying to get started developing for the X16 with C and/or assembly, I've created this video to help: If you just want to get the "Hello, World!" repo and start hacking, you can get it from my GitHub: https://github.com/SlithyMatt/x16-hello-cc65
  • Create New...

Important Information

Please review our Terms of Use