Jump to content

desertfish

Members
  • Posts

    593
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by desertfish

  1. Actually I don't deserve all the credits. I stole the idea from an old megademo on the Amiga that had me floored back when it came out in 1990. It contained a section where the Amiga was apparently animating a sheer unbelievable amount of "bobs" (blitter objects) whereas previously the Amiga topped out at animating around 300 or 400 "bobs" or so. Here's a video of what I'm talking about: Skip to part 5, starting at 18:52 : The grin on my face was pretty big when I eventually figured out how they did it. And now the same effect runs on the commander X16
  2. Version 1.0.1

    82 downloads

    How many sprites does the Commander X16 have? Let's find out, shall we! Written in Prog8. Source code is here: https://github.com/irmen/prog8/blob/master/examples/cx16/bobs.p8
  3. Many Sprites View File How many sprites does the Commander X16 have? Let's find out, shall we! Written in Prog8. Source code is here: https://github.com/irmen/prog8/blob/master/examples/cx16/bobs.p8 Submitter desertfish Submitted 03/05/21 Category Demos  
  4. Welcome and have fun. May I ask what part of the GDR? When I was little, we visited the city of Weimar and the surrounding area a few times with my family (we're from the Netherlands). That was in the 80's so it was still GDR.
  5. Can we have a moment to also appreciate the fantastic looking manual !?
  6. Vertical bars demoscene effect View File Vertical "raster" bars, also known as "kefren bars" from the old school demo scene. Written in Prog8. No sprites used, it's bitmap graphics (with a trick...). Source is here https://github.com/irmen/prog8/blob/master/examples/cx16/kefrenbars.p8 Submitter desertfish Submitted 03/03/21 Category Demos  
  7. Version 1.0.0

    29 downloads

    Vertical "raster" bars, also known as "kefren bars" from the old school demo scene. Written in Prog8. No sprites used, it's bitmap graphics (with a trick...). Source is here https://github.com/irmen/prog8/blob/master/examples/cx16/kefrenbars.p8
  8. I am using the assembled BIN file only, so no impact for me
  9. The current symbol table implementation is simplistic but should be easily replaceable with a different smarter one. Because it has a very basic interface to the assembler logic itself. I don't think I have the time to build a smarter symboltable myself, so hopefully someone else can jump in, who knows
  10. Yeah but I linked to a specific comment in that topic, which mentions GeckOS - a text based OS.
  11. No, not really... All good string hash functions use multiplications and we can't do that on the 6502 and also still keep it fast...
  12. That is an interesting idea. Sometimes "good enough" is good enough and we can think of a different symbol name to satisfy the assembler.
  13. Well, a correct hashtable implementation will deal with collisions (colision lists or other solution) Not dealing with possible collisions will result in extremely hard to track down bugs in your resulting machine code. Without any warning certain symbols suddenly will pick up the value of others... I can't imagine that's acceptable in forth either. I assume it uses a trick to deal with this as well
  14. There's this as well... so many unixes....
  15. I've fixed the issues in a new upload. Turned out it wasn't correctly handling absolute-indexed with symbols About the symbol table: how does Forth deal with collisions? prefix+length is way to simple ( "name1" and "name2" will be the same entry) and adding a "checksum" will only work to a certain extent if you mean "hash", I suppose. Still there is no guarantee that we don't have collisions.
  16. Prog8 6.2 was just released. As always the documentation is here and the git repository is here. Changes: - like the R0..R15 virtual registers, the carry status bit Pc does no longer have to be specified as the last parameter but you can put it anywhere. The compiler will sort it. - simplified the set_irq routines - added irq handling routines for the commander x16 - added commanderx16 rasterbars irq example - added cx16 vtui-library example, improved graphics on cx16 port of tehtriz and added sounds to it - added animal guessing game example - duplicate string literals are optimized better - slightly optimized the gfx2 module pixel position calculations - commanderX16 compiler target improvements - source code restructurings to reduce internal dependencies - bugfixes - documentation fixes
  17. Hi thanks for trying it out. Can you post the failing program? Because it should be able to deal with undefined symbols
  18. I can't think of a reason why this is useful, do you have an example perhaps? Also a tiny suggestion for any future version: add new routines (if any) at the end of the jump table, instead of inserting them in the middle. That way existing code can keep running hopefully Mostly asking this because I now had to renumber most of the routines' addresses in my prog8 interface. That looks like this: vtui $1000 { %asmbinary "VTUI0.6.BIN", 2 ; skip the 2 dummy load address bytes ; NOTE: base address $1000 here must be the same as the block's memory address, for obvious reasons! romsub $1000 = initialize() clobbers(A, X, Y) romsub $1002 = screen_set(ubyte mode @A) clobbers(A, X, Y) romsub $1005 = set_bank(ubyte bank @Pc) clobbers(A) romsub $1008 = set_stride(ubyte stride @A) clobbers(A) romsub $100b = set_decr(ubyte incrdecr @Pc) clobbers(A) romsub $100e = clr_scr(ubyte char @A, ubyte colors @X) clobbers(Y) romsub $1011 = gotoxy(ubyte column @A, ubyte row @Y) romsub $1014 = plot_char(ubyte char @A, ubyte colors @X) romsub $1017 = scan_char() -> ubyte @A, ubyte @X romsub $101a = hline(ubyte char @A, ubyte length @Y, ubyte colors @X) clobbers(A) romsub $101d = vline(ubyte char @A, ubyte height @Y, ubyte colors @X) clobbers(A) romsub $1020 = print_str(str string @R0, ubyte colors @X, ubyte convertchars @A) clobbers(A, Y) romsub $1023 = fill_box(ubyte char @A, ubyte width @R1, ubyte height @R2, ubyte colors @X) clobbers(A, Y) romsub $1026 = pet2scr(ubyte char @A) -> ubyte @A romsub $1029 = scr2pet(ubyte char @A) -> ubyte @A romsub $102c = border(ubyte mode @A, ubyte width @R1, ubyte height @R2, ubyte colors @X) clobbers(Y) ; NOTE: mode 6 means 'custom' characters taken from r3 - r6 romsub $102f = save_rect(ubyte ramtype @A, ubyte vbank @Pc, uword address @R0, ubyte width @R1, ubyte height @R2) clobbers(A, X, Y) romsub $1032 = rest_rect(ubyte ramtype @A, ubyte vbank @Pc, uword address @R0, ubyte width @R1, ubyte height @R2) clobbers(A, X, Y) } as you can see, it uses its own language construct to interface to the routines - I can't include the vtui assembly source file and refer to the symbols defined in there. It can include the pre-assembled binary library though. And that relocation trick of VTUI is pretty awesome, I can load it at any address I want that is amazing
  19. Version 2.2

    108 downloads

    File-based assembler. Work in progress. requirements: patched v39 roms, sdcard image (no host filesystem passthrough) requires ZeroByte's patched Kernal LOAD routine to deal with the HIRAM banks correctly! Using the default unpatched V39 kernal Rom will crash the commander X16, and can corrupt your sd-card image! due to remaining kernal / emulator bugs, the file loading mechanism only works on an attached sdcard image in the emulator. Host mounted filesystem doesn't work. Source code and list of features is here https://github.com/irmen/cx16assem The instructions are fairly self-explanatory, a simple manual will come later assem-2021-12-14_01.26.48.mp4
  20. File based assembler View File File-based assembler. Work in progress. requirements: patched v39 roms, sdcard image (no host filesystem passthrough) requires ZeroByte's patched Kernal LOAD routine to deal with the HIRAM banks correctly! Using the default unpatched V39 kernal Rom will crash the commander X16, and can corrupt your sd-card image! due to remaining kernal / emulator bugs, the file loading mechanism only works on an attached sdcard image in the emulator. Host mounted filesystem doesn't work. Source code and list of features is here https://github.com/irmen/cx16assem The instructions are fairly self-explanatory, a simple manual will come later assem-2021-12-14_01.26.48.mp4 Submitter desertfish Submitted 02/26/21 Category Productivity Apps  
  21. Version 1.0 of the file based assembler shown above is released to play with You can compile it yourself or download the prg from github
  22. 0.5 is the new 0.5 Great stuff. I saw the "midnight commander" demo appliction. Is that one of the examples in the repo? I'd like to try to port your examples to prog8 to see if I missed anything in the integration.
×
×
  • Create New...

Important Information

Please review our Terms of Use