Jump to content

danwinslow

Members
  • Posts

    3,023
  • Joined

  • Last visited

Posts posted by danwinslow

  1. On 7/29/2023 at 2:02 AM, Philsan said:

    I think for fast arcade games (for example 8bit-Slicks, 8bit-Strike), 8bit-hub (or the no longer available Dragoncart) are more suitable.

    I don't know what are the issues but 8bit-Slicks lagged when I tested it with FujiNet and worked with 8bit-Hub and Dragoncart.

    At the moment there aren't arcade online FujiNet games.

    I hope to be wrong because everybody has FujiNet therefore more people would play online.

    It's mostly SIO serial time. It's only noticeable in action games, where you really need like direct UDP to memory transfers.

  2. Very nice looking.

    It would be interesting to develop a 'board game server' via fujinet that could connect instances of people playing this or other board games. Server itself would just connect the various instances together and who is playing with who and pass the game packets along as necessary. Likely would be suited for a small linux instance on some device. Peer to Peer(s) game play with one instance selected as 'primary'.

    The games would have to be written to support it, of course (or maybe extensively modified if they are already multi-player). This would be a great game to start with.

    • Like 1
  3. I did something similar a while back. I set up a lowcode segment at 0x2000-0x3999, a bank segment at 0x4000-0x7999, and set up the regular loading segment and compilation at 0x8000. I used the segment facility #pragma's to direct where things got created in in code. Seemed to work ok, but that was an older version of CC65. My equivalent of your array was loaded above 0x8000.

  4. 18 hours ago, Stephen said:

    You know doc - I think this pretty much sums it up.  We are the last of a generation.  When we are gone, so goes the sum knowledge of our hobby.  But then again - I think of things like, there are still clubs for, and parts available for, Model A and T Fords.  If we can spur interest into the upcoming generations, the flame doesn't have to go out when we do.

    When I was a very young teen, my Grandfather took me to meet his group of radiohead friends, who all had decrepit old crystal radios and sat around messing with them, modding them, and arguing. They smoked (inside!) and talked to each other in Morse Code. I rolled my eyes and thought "Oh man, look at these old fogeys. I will never be like that!" Now that I am a grandfather myself, the irony is strong.

    • Like 1
    • Haha 4
  5. Things fall apart; the center cannot hold; 

    Mere anarchy is loosed upon the world,

    The blood-dimmed tide is loosed, and everywhere

    The ceremony of innocence is drowned;

    The best lack all conviction, while the worst

    Are full of passionate intensity.

     

    From "The Second Coming" by W. B. Yeats

    • Like 1
  6. 1 hour ago, TGB1718 said:

    You're right he says he want to write code for all these platforms, but seems to have no idea on how to

    program for each one, even though I've never had/used an Apple 2, I think I could write the required

    code in assembler to achieve what he wants.

     

    Seriously though all I did was Google this:- "machine code programming apple 2"

     

    Second hit got me the info, has he not got Google 😇

    He generally refuses to do his own research. As long as someone gets sucked into 'helping' him (which it seems someone always is), he is content. I think he more or less just wants attention.

    • Like 2
  7. 11 minutes ago, fenrock said:

    Hello, I'm back using fastbasic and have some questions about linking separate asm files.

     

    I have 2 asm files, e.g. gen.asm and gen2.asm.

    In gen2.asm is a .proc I want to call from gen.asm.

    How do I do that?

     

    I've tried following

     

    in gen.asm:

      .import GEN2
      .export GEN
    
    .proc GEN
      jsr GEN2::start     ; the scoped start label inside GEN2
    
      ;; do stuff with returned values
      ;; ...
    
      rts
    .endproc


    With gen2.asm:

      .export GEN2
    
    .proc GEN2
    
    start:
      pla
      ;; ... more stuff
    
      rts
    
    .endproc

     

    The fastbasic file is simple, just doing USR to gen (test.bas):

    dim d1(31) byte
    x = USR(@gen, &d1, 1, 2)
    ? "x:"
    ? x

     

    I've tried various ways to compile, but I'm getting

     

    $ fb test.bas -X:-U gen2.asm gen.asm
    
    BAS compile 'test.bas' to 'test.asm'
    ASM assemble 'test.asm' to 'test.o'
    ASM assemble 'gen2.asm' to 'gen2.o'
    ASM assemble 'gen.asm' to 'gen.o'
    gen.asm(10): Error: No such scope: 'GEN2'
    gen.asm(10): Error: Unexpected trailing garbage characters
    fastbasic: can't assemble file

     

    I've tried it with and without the `-X:-U` parameter, and with a `-X:-DGEN2` (which errors with duplicate symbol).

     

    What's the correct way to link the two together so procs in one asm are callable from another?

     

    Thanks!

    Just guessing, but the circularity of both of them needing the other might be a problem. Have you tried putting them in the same file?

  8. Well, to be fair, CC65 has never represented itself as 'the best thing to use on Atari for anything'. It is what it is - a good ANSI compatible C compiler that you can use on a host of 65xx systems. You have to expect some amount of generalization. It's a good toolset, you need to know how to use it on the Atari and when you do, it can be very good. I've used it for many things and never once had to suffer through the horrors of clrscr(). Ironically the OP's goal is to write for commodore and Atari.

  9. Nobody is using your stuff. That is your actual problem. You are providing something that no-one needs. All of your utilities help with things that aren't actually problems.  Everything you handle is either already done in numerous ways, or trivial. In particular, no-one needs "cubbyhole" optimization software. AdvSkel is actually not a bad idea, but its executed and documented so badly that no one wants to use it.

     

    Stop obsessing about sizes, and take the time to build AdvSkel out into a real toolkit for people writing text adventures. Document it well. Then, even in this late day of 8bit, somebody somewhere might use it.

    • Like 2
  10. 5 hours ago, drac030 said:

    Huh? This is what the C library has to offer for clrscr() and setcursor()? Why not simply putc(125) and a simple write to crscol/row? It would be not only more portable - to different Atari display handlers, at least - but also much shorter, no?

    I'm just reporting. I Had nothing to do with CC65's source code. I'm sure they had their reasons.

  11. yeah, I assumed as much, since he hasn't commented. I'm glad you've known about this, please pardon us for discussing it in your thread. Neither one of us was advocating for a change in MadPascal, I was just voicing an opinion.

    • Like 1
  12. It shouldn't make them constants, constants go in a 'constant' block. Whether local var initialization should do anything and whether it should occur every time the function is entered is less clear, can't really get a direct answer after googling a bit.

    This thread is probably relevant  - https://en.delphipraxis.net/topic/923-initialize-local-variables-at-declaration/

     

    But anyway, as an outsider opinion I think it definitely should behave the way I was thinking - either make it happen each function call or don't allow it. There are various different implementations out there though, so maybe MadPascal allows compilation of such sources with the proviso that you might have to go back in and add your own direct initialization.

  13. Ah. Ok, thanks. The guy asking about it seemed to have some expectation of it working that way, so I kind of thought it was supposed to. Maybe it's kind of a language hole, and only works in variants that MadPascal is not implementing.

  14. Scope, yes, but whats the point of allowing the declarative initialization if it's only going to be done once? The fact that the last value is retained makes it act more like global scope, even if the name scope is there. Not a pascal expert but seems kind of wrong.

    • Like 2
  15. TGB, yes, you "fixed" it, but thats not the point.

    The locals in the xyz() function should be re-initialized to 0 each time the function is entered. According to his output, they are not, and retain the 10 from the previous call. I think this is a bug.

    Unless pascal explicitly doesn't do that, in which case I wonder why they have local vars at all.

×
×
  • Create New...