Jump to content


  • Content Count

  • Joined

  • Last visited

Posts posted by danwinslow

  1. For the TSR type thing, you have to drive it off of an interrupt. VBI/VBD is always an option, you can chain yourself in there even if something else is already (provided they did it the right way). I've also driven things off of one of the pokey timers. As always, you need to attend to the stack/regs and CRITIC and so forth. Anyways, from a high level: get yourself loaded somewhere safe, steal the interrupt vector by replacing it with your routine, saving off the old one if you want to chain to it when you are done (VBI/VBD, usually pokey you wouldn't do that) and also to replace it if you quit. You finish the VBI/VBD by jumping through the old vector, if I recall, and from pokey you'd RTI. Both need attention to putting the stack and regs back together as necessary. For pokey you need to do some setup and control the rate you want.


    There's lots of examples in docs about VBI/VBD, pokey interrupts are slightly more exotic but there's still a lot out there. If you are ok with cross compiling on a PC, you could look at MADS or CA65. I used CA65, but if you write the C correctly you can actually use CC65 to do interrupts fairly well. The whole CC65 toolchain is fairly complicated, so you might want to look at MADS for just straight assembly.

    If you want to do it natively on the Atari, I'm not sure what's best but I'm sure someone will have a recommendation.


    For the BASIC question, I think you just PEEK(addr)+PEEK(addr+1)*256, or use DPEEK(addr) from one of the more advanced BASICs.

  2. That's a pretty clear error message. You are directing 858 more bytes into LOWCODE than it was defined to hold.

    You might need to put in some segment pragma control in your source code, which is one reason sanny needs to see it.



    It is a complicated subject, and puts a lot of people off from using CC65, but it is well worth the effort. You do just about anything with the cfg files.

    • Like 1

  3. I wrote a few simple games in Valforth on the Atari. One of my thoughts about Forth is that it's not really a 'language to write a program in'. It's more of an 'engine to define a language to write a program in'. In essence, it's kind of like using assembler - you build all of your own language constructs. If you do it in an haphazard, informal way, you'll probably hit a wall at a certain level of complexity. That's why you need to define your words in a consistent, highly factored, loosely coupled way...just like language designers do when designing a language.

    • Like 2

  4. From what I can tell, I think it's best to just help him along as we can, and not worry about whether he's doing something particularly productive or effective. That's just my 2 cents on the matter. What he's doing sounds duplicative to the em driver to me, but who cares.


    Harry -

    "Extra" memory-

    1. Under the OS. Only on certain machines. This is just part of the 64k RAM address space.

    2. Banked (or extended) RAM. This is any one of a variety of memory expansions, including the 130XE. 16K blocks mapped into $4000 by fiddling with PORTB. Axlon might be different, not sure, but same idea.

    3. Unused memory. Regular RAM locations that are unused under certain circumstances. Printer buffer, cassette buffer, various FP bits and pieces, some ZP locations, etc., even under the stack if you are adventurous. Well documented over the years, but subject to a lot of variability depending on machine config.



    • Like 1

  5. On 11/12/2021 at 7:04 AM, Kaj de Vos said:

    I'm not wrong, there are grave misconceptions in there. Please have patience until I have time to answer them.


    I think it's quite presumptuous of you to equate everyone here with your own preferences and preconceptions. Anyway, if you are not the target market, what are you doing in this thread? I'm not forcing anything upon you.

    I'm not equating everyone here with my preferences...this might be a language (human, not meta) problem, but I think I understand what you mean. I clearly stated it was my own opinion.

    I think it's quite presumptuous of you to wave your hand and refer to criticism as 'grave misconceptions'. What were the grave misconceptions you refer to? 

    You seem to think that any negativity or criticism results from us just not understanding things correctly, and when you have time to 'explain' then we will all see that you are right. That more than anything else is what has turned me off from this discussion.

    I see you started another thread, I think that's probably a good idea because there were some kind of rude posts, which if you'll recall, I spoke against.

    Good luck with your project.



  6. On 11/11/2021 at 6:29 AM, Harry Potter said:

    Thank you, and sorry for the lack of a reply.  :(  I really want to support Action.  That's why I'm asking.

    Harry - Action doesn't need 'support'. If you want to learn it to use it, then great. Read the docs and write code. No one needs a 'template creator', it's just not useful.

    • Like 1

  7. Yknow, Kaj, taking criticism as "grave misconception" is not helpful to your argument. These guys know their stuff. If one disagrees with you, well...fine, that happens a lot. If two do, then hmmm ok but still. If nearly everyone is saying the same thing - you're probably wrong.

    You like REBOL, I get it. To me, it's a bizarre language that as far as I can tell never got much traction, but OK, maybe be I'm wrong. Do your thing, I appreciate the effort and skill it takes. But don't expect people to actually use it for much, this is entirely the wrong target market.

    • Sad 1

  8. 1 hour ago, Stephen said:

    Perception is difficult for someone who is blind and deaf.  Tone deaf (with regards to a conversation too).  Just remember folks.  When 200 different people have a problem with one single person, it is obviously the 200 people who are the issue, not the one.

    Just to be clear, my post was an attempt at a wordplay joke, not an opinion on any preceding posts.

  9. 43 minutes ago, globe said:


    I have couple of ideas on paper that could speed things up and make them look a bit nicer too.

    But it will take time and there are other works in the pipeline too so don't hold your breath.

    Just me, but I don't think you should worry about the 64k limit. You've done this - it's amazing. Grab another 64k and go nuts for V2.0. The user base nowadays is pretty upgraded, and there's always altirra.

    • Like 5

  10. Well, if its a temporary situation, that's understandable.

    Your desire to cover many toolchains will keep you busy for a long time. Consider an adapter layer, something like maybe what LLVM does, meaning a universal intermediate compilation that then gets run through a particular adapter that would then express the correct source and drive the toolchain.

  11. Kaj -

    I think a good project would be to do the benchmark suite as found in, for instance, the MAD Pascal thread, and show results and source codes. That would kill 2 objectives with 1 effort. If you want to get real traction for your language here that would be a step towards it. I would not expect someone else to take that on...you never know but when you get things finished to your liking I think that would be a logical next step. We are not as interested in the niceties of language constructs and flexibility as we would be in actual performance and accompanying source.

  12. Philosophically, it kind of reminds me of FORTH in a way, it's a tool for creating your own language, essentially, thus the name Meta, I think. Cool if you are interested in playing around with language constructs, but I'm still not sure of applicability in our world, which is dominated by tight RAM and speed requirements. Not a shot, Kaj, just my viewpoint so far.

    • Like 1

  13. Harry -

    Again, this is all probably too hard for you. Try something smaller and easier.

    TGB *just* explained exactly how it works. Read the code he wrote above. Look up each location in Mapping The Atari. Read as much as you can until you understand what the code is doing. Then you will know how any code in any language accesses the RAM under the ROM.

    • Like 1
  • Create New...