home.social

#cc65 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #cc65, aggregated by home.social.

  1. A little while ago I worked on making the Apple II cc65 runtime less dependant on the target. That work is now in cc65's git and it is possible to use 80 columns, lowercase characters and MouseText characters while building for `apple2` in addition to `apple2enh`.

    This allows me to ship a single floppy image for most of my projects, with binaries running on anything from the ][+ to the IIgs, and still benefit from the extended features at runtime.

    colino.net/wordpress/en/archiv

    #RetroComputing #cc65 #AppleII

  2. A little while ago I worked on making the Apple II cc65 runtime less dependant on the target. That work is now in cc65's git and it is possible to use 80 columns, lowercase characters and MouseText characters while building for `apple2` in addition to `apple2enh`.

    This allows me to ship a single floppy image for most of my projects, with binaries running on anything from the ][+ to the IIgs, and still benefit from the extended features at runtime.

    colino.net/wordpress/en/archiv

    #RetroComputing #cc65 #AppleII

  3. Разработка трёхмерного движка для Dendy/NES. Часть 1

    В этой статье мы поговорим о разработке простого трёхмерного движка для консоли Dendy ( NES/Famicom ), который позволит выводить полигональные трёхмерные модели и проводить над ними базовые манипуляции (вращение, перемещение, трансформация, заливка полигонов и т. д.). В первом части мы обсудим реализацию вывода двумерных примитивов и организацию памяти в условиях ограничений NES.

    habr.com/ru/companies/sberbank

    #c #python #разработка_игр #nes #dendy #gamedev #ретроконсоли #3dграфика #движок_игры #cc65

  4. Разработка трёхмерного движка для Dendy/NES. Часть 1

    В этой статье мы поговорим о разработке простого трёхмерного движка для консоли Dendy ( NES/Famicom ), который позволит выводить полигональные трёхмерные модели и проводить над ними базовые манипуляции (вращение, перемещение, трансформация, заливка полигонов и т. д.). В первом части мы обсудим реализацию вывода двумерных примитивов и организацию памяти в условиях ограничений NES.

    habr.com/ru/companies/sberbank

    #c #python #разработка_игр #nes #dendy #gamedev #ретроконсоли #3dграфика #движок_игры #cc65

  5. I wasted whole day today to rewrite the challenge in assembly. I feel strange satisfaction of the result 😂 The binary is almost 4 times less the size of what I’ve made in C lang.

  6. I’m so hooked to this, that I feel I waste my time on project, instead of doing something to earn money. At least I’m learning C as I go along. I wrote the interface part of a simple wifi manager for my serial card for in . It is suppose to talk to zimodem firmware on the esp8266 in a way that seems native to the apple2.

  7. I managed to rewrite my custom serial card firmware in #cc65 It’s way easier to work with strings in C compared to assembly. I had a minor hiccup with the pointers but I think finally got the grasp of them. Since I dont have any serial buffer but just one byte register, I found that using printf() with screen scroll actually cant catch up the serial speed. Using cputc() is doing well but no screen scroll. I ended up delaying the speed a bit on the esp8266 side and using printf(). #apple2

  8. I managed to rewrite my custom serial card firmware in It’s way easier to work with strings in C compared to assembly. I had a minor hiccup with the pointers but I think finally got the grasp of them. Since I dont have any serial buffer but just one byte register, I found that using printf() with screen scroll actually cant catch up the serial speed. Using cputc() is doing well but no screen scroll. I ended up delaying the speed a bit on the esp8266 side and using printf().

  9. @jos1264 Or you could just use any text editor you like (#vim works pretty fine with assembly code), one of the many cross-assemblers available (e.g. ca65 from #cc65 comes with an object-code format and a linker for that, which is awseome for organizing larger projects) and control your build with good old #make.

    But hey, if using monsters based on #chromium and #javascript (vs-code) and a #java vm (kickassembler) feels "right" for you targeting this tiny old machine writing lean and efficient code ... 🤷‍♂️😏

    #c64 #retroprogramming

  10. @jos1264 Or you could just use any text editor you like (#vim works pretty fine with assembly code), one of the many cross-assemblers available (e.g. ca65 from #cc65 comes with an object-code format and a linker for that, which is awseome for organizing larger projects) and control your build with good old #make.

    But hey, if using monsters based on #chromium and #javascript (vs-code) and a #java vm (kickassembler) feels "right" for you targeting this tiny old machine writing lean and efficient code ... 🤷‍♂️😏

    #c64 #retroprogramming

  11. @RogerBidon @root42 That makes sense to me. TBH, I didn't even know #GCC *could* target the #mos6502 until reading your toot.

    Low-level optimization will always be hard, I mean, it's hard to map C to this architecture at all (e.g. because of the very small and "global" hardware stack and a complete lack of any sp-relative addressing).

    I was tempted ever so often to use C for the #C64, but always ended up writing *everything* in assembly (just using #cc65's assembler and linker, having linkable object files is super nice!).

    Will take this on my ideas list to try creating a "gcc-mos6502" port for #FreeBSD 😎

  12. @RogerBidon @root42 That makes sense to me. TBH, I didn't even know #GCC *could* target the #mos6502 until reading your toot.

    Low-level optimization will always be hard, I mean, it's hard to map C to this architecture at all (e.g. because of the very small and "global" hardware stack and a complete lack of any sp-relative addressing).

    I was tempted ever so often to use C for the #C64, but always ended up writing *everything* in assembly (just using #cc65's assembler and linker, having linkable object files is super nice!).

    Will take this on my ideas list to try creating a "gcc-mos6502" port for #FreeBSD 😎

  13. @RogerBidon serious question, assuming you have to write mostly "targeted" code anyways (because a #mos6502 just won't reasonably run 98% of today's existing C code), what's the edge of a #GCC targeting this platform over e.g. #cc65?

    If there's a real advantage, I might be tempted to bring this to #FreeBSD...

  14. @RogerBidon serious question, assuming you have to write mostly "targeted" code anyways (because a #mos6502 just won't reasonably run 98% of today's existing C code), what's the edge of a #GCC targeting this platform over e.g. #cc65?

    If there's a real advantage, I might be tempted to bring this to #FreeBSD...

  15. Another learning breakthrough :ablobcatrave: I’ve managed to write a small ca65 assembly program which prints text on the screen. I burnt it onto an EEPROM and started it from the slot 5 with ‘pr#5’. It took me some time to wrap my head around how to make the memory map of the ROM but it worked and I’m so happy

  16. Just fixed my boilerplate for Now after compiling, the makefile inserts the new image into Virtual][ emulator (MacOS) and “brun”s the project file. This speeds up the dev process quite a lot. In case anyone needs it: github.com/varna9000/cc65-temp

  17. @governa With the #CC65 compiler (#C only) already along for a long time, did anyone compare the results?
    cc65.github.io/doc/cc65.html

  18. @governa With the #CC65 compiler (#C only) already along for a long time, did anyone compare the results?
    cc65.github.io/doc/cc65.html

  19. Can’t believe I managed to rewrite this in C 😁😁😁 Never touched ansi C before, only some Arduino and mainly Python.

  20. Holy fucking shit, folks! I have successfully tracked, found, understood and fixed a data corruption bug in #cc65!
    This is absolutely one, maybe two new stamps on my #nerd card!
    I'm so proud of myself right now 😊
    I'll push a PR to cc65 later, and probably an explanation of the process on my blog for posterity, but first, celebration time 🙂
    #RetroComputing

  21. Holy fucking shit, folks! I have successfully tracked, found, understood and fixed a data corruption bug in #cc65!
    This is absolutely one, maybe two new stamps on my #nerd card!
    I'm so proud of myself right now 😊
    I'll push a PR to cc65 later, and probably an explanation of the process on my blog for posterity, but first, celebration time 🙂

  22. @IPXFong Not sure if that's an option for you, but I very much prefer cross-development these days (actually, I didn't do anything else for many years).

    There are several fine opensource cross-assemblers targeting the #C64 (or, more general, the #MOS6502 family). I personally prefer #ca65 which comes with the #cc65 cross-compiler package because it can assemble to object-code and the package contains a linker, IMHO very helpful for larger and more complex projects.

  23. @IPXFong Not sure if that's an option for you, but I very much prefer cross-development these days (actually, I didn't do anything else for many years).

    There are several fine opensource cross-assemblers targeting the #C64 (or, more general, the #MOS6502 family). I personally prefer #ca65 which comes with the #cc65 cross-compiler package because it can assemble to object-code and the package contains a linker, IMHO very helpful for larger and more complex projects.

  24. Let me proudly present you this HGR (High Graphics Resolution - this is state of the art 280x192 pixels of awesomeness) rendering of a rose, courtesy of #cc65 sample images.
    It has been selected from the TUI of #mastapple2c and should appear in all its glory in your #retrocomputing timelines!

  25. Let me proudly present you this HGR (High Graphics Resolution - this is state of the art 280x192 pixels of awesomeness) rendering of a rose, courtesy of #cc65 sample images.
    It has been selected from the TUI of #mastapple2c and should appear in all its glory in your #retrocomputing timelines!

  26. I think I got obsessed with compiler. I abandoned all work until I made a C program for my clone which reads a contemporary, but converted image from the file system and shows it on the screen. I'm not even a C programmer.

  27. Comparing #LLVM_MOS vs #CC65 for #NES dev
    magenta background is LLVM.
    black background is CC65
    the performance improvement tho !!

  28. Comparing #LLVM_MOS vs #CC65 for #NES dev
    magenta background is LLVM.
    black background is CC65
    the performance improvement tho !!

  29. Spent hours yesterday to get a RL interrupt routine working in C for the #commodore #C128.
    The code is .asm, but inside a C function, and the wedge function is also C.

    I am now at a point where I think it's not me, is #cc65. The routine did run nicely in pure (acme) assembly.
    Next step: Raw .asm include, let's see if that works.

    Man, assembly programming is hard work.
    #retroprogramming