Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by desertfish

  1. pretty surprising that you're nesting things 100+ levels deep? (every nested call consumes 2 bytes of stack for the return address) Are you sure you're running out of stack?
  2. That is an enormous task @BlueSpartan076 and I also feel it will only be useful to / used by a tiny fraction of the Cx16 users so not worth the effort. But hey that's my opinion
  3. Here's the result of my Prog8 port of the balls.bas program as found in the commanderx16 x16-demo git repository. Original basic source: https://github.com/commanderx16/x16-demo/blob/master/basic/balls.bas Prog8 version: https://github.com/irmen/prog8/blob/master/examples/balls.p8 It draws 1000 frames and then prints the time taken in jiffies (1/60 sec), which turns out to be about 90 frames/sec. Was pretty fun to port the program and see it whizz by on the screen. It's a lot slower on the C-64 but still fun to watch on that machine too. cx16-2020-11-28_00.47.37.mp4
  4. I think you have to start the emulator with an sd-card image mounted for those to work.
  5. That Action! language, is it compiled, on the target system? That's really impressive as heck
  6. Shit man that sucks. I had a (tiny) share of bad luck happen to me in the past, and since then a rsync job runs every 4 hours to backup all my stuff to a different machine at least...
  7. That is great to hear. It's how I started as well (as a kid), on the Commodore-64 in the mid 80's first basic but quite soon assembly. Later, assembly on the Amiga and then C -> C++ -> Java and Python -> C# and Kotlin (present time).
  8. I use a few: floats -> the RND routine in ROM bytes and words -> the 'small fast' rnd routines by white flame fromhttps://www.codebase64.org/doku.php?id=base:small_fast_16-bit_prng
  9. If you're also able to target the Commodore-64, here's a few micro benchmarks that you could explore. They helped me identify a few bottlenecks in Prog8's code generation. https://github.com/KarolS/millfork-benchmarks/tree/master/6502 As a "project" or a substantially larger program, may I suggest Text-elite perhaps? Here's a cleaned up Ansi-C version of the origial source code taken from Ian Bell's Elite homepage; https://github.com/irmen/text-elite/tree/master/ansic (The Prog8 version of text-elite is available in the games downloads section on this forum)
  10. I've just released Prog8 5.1 It contains a few bugfixes (such as making breakpoints in Vice work again), but the bulk of the changes are improvements to the generated assembly code. Certain array accesses, value assignments and value comparisons have seen optimizations and the result is that the "plasma" benchmark from the millfork-benchmarks project now runs at around the same speed as the optimized CC65 version does. note I made an error in the setting of the graphics mode in this release. The VIC YSCROLL register ($d011) is not set correctly. You can fix this in your own code or wait for the next Prog8 version to be released.... Sorry
  11. I understand. I like mini languages they can explore interesting concepts. (and going completely bonkers if you want, see: Esotheric languages) With 'compare' I actually meant how an equivalent program would have to be written in Prog8 and how it performs, to learn about possible bottlenecks in Prog8 I might be able to address later
  12. interesting stuff, I'm going to try to rewrite those various demos into Prog8 to see how it compares
  13. I would like to add BBC support to Prog8. However I know next to nothing about that system.... so I won’t be able to properly test it too... don’t even know what the program file format is.
  14. Quick question-- is it possible to mount multiple drives on the x16emu emulator? Say 2 sdcard images on drives 8 and 9, or access to the host's filesystem on drive 8 and an sdcard image on 9? Or is there another smarter way to copy files onto a sdcard image for the emulator
  15. Indeed, especially not with my compiler writing skills That's why I included the inline-assembly block in prog8 from the start, to make it easy and fairly transparent to write critical pieces of code in tuned assembly
  16. Exactly like that, @geek504 the software eval stack of Prog8 is a (low/high byte split) stack indexed by the X register that functions as a second stack pointer. Expressions like A+B are evaluated like you pointed out. I've been working on eliminating some of the need for this stack for intermediary results and trivial expressions and assignments, but for most non-trivial expressions it is still required. It makes the code generator itself a lot simpler however the generated code is quite inefficient in terms of 6502 assembly....
  17. I've just released Prog8 5.0 I decided to bump to a new major version because this one fundamentally changed the way arguments are passed to subroutines, and how return values are returned. It no longer uses the software-eval-stack for that. This usually results in much smaller code size for programs calling a lot of subroutines (with arguments). Also the obligatory bugfixes ofcourse.
  18. Started in Spooktober I decided to replay several horror (or scary) games. Currently I am in the progress of playing the Dead Space series againon the PS3. Am half way into DS2 now. Before that I was playing the Witcher 3 but I put that on pause for a bit If I want to relax or don't have much time I find myself coming back to a few levels of Tetris Effect on the PS4 as well
  19. Not sure if it fits here but I'd like to mention Steins;Gate. There's a computer game (more a visual novel) and TV series of it. It's about a group of students discovering a form of time travel, and I found it pretty interesting in the way it presented those concepts.
  20. I just realized that it is also possible to plug an USB audio device in. I don't have a usb headphones (but they exist) but I do have a USB DAC that in turn contains an analog plug. The DAC is twice the price of the Pi400 though
  21. In Prog8 I solved this by generating assembly code that explicitly names the locations in ZP via a label declaration, rather than explicitly allocating them like we do with regular variables. The variables in zp are initialized explicitly with code at the start of the program with whatever value they need to have. So we have something like this (for a C-64 program so the available zeropage locations looks different from the cx16): P8ZP_SCRATCH_B1 = 2 P8ZP_SCRATCH_REG = 3 P8ZP_SCRATCH_W1 = 251 ; word P8ZP_SCRATCH_W2 = 253 ; word lines = 4 ; auto zp UWORD score = 9 ; auto zp UWORD xpos = 6 ; auto zp UBYTE ypos = 146 ; auto zp UBYTE nextBlock = 150 ; auto zp UBYTE speedlevel = 249 ; auto zp UBYTE holding = 255 ; auto zp UBYTE holdingAllowed = 11 ; auto zp UBYTE .... init: lda #0 sta lines sta lines+1 sta xpos sta ypos lda #1 sta speedlevel ..... while regular variables that are not in zeropage are just this, which actually allocate bytes into the resulting binary program. currentblock .byte 0 currentline .byte 0
  22. Nice video once again. Your renders of the "original" colored versions is really awesome especially the black ones ZX and Amstrad I really dig those colors also: "weeeryy niiice!" Just wached Borat Subsequent Moviefilm last weekend It would have been super duper awesome if the keyboard had a small touchpad on it as well so you don't have to connect a separate mouse. Also, no analog audio headphones plug? Is it audio-over-hdml only? That's..... problematic if your monitor doesn't have speakers I still want one!! But I don't know what I'll do with it hahah!! My old Pi 2 still works fine for the tiny projects I do with it
  23. Love your dedication @SlithyMatt Halloween isn't really a thing for me and where I live ( Netherlands ) so we didn't make anything like this.
  24. There were dozens if not hundreds of these Game N Watch games on the market... I owned two or three of them and my friends had several others that I played (some were simplistic to the extreme, such as Octopus, where you just had to move left and right) some were more advanced such as Donkey Kong that was a dual-screen game) @markboston36 color display? hehehe, no, it was LCD technology dude The cement trucks and factory structure are static decals painted on the plastic screen. Look at the image below, it shows all possible LCD segments activated (the black segments): Later there were some tabletop or "micro arcade cabinet" variants of these type of games that could display some color. I have no idea how they work though, I suspect simply a more advanced form of LCD with different colored lights.
  • Create New...

Important Information

Please review our Terms of Use