Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


ralphb last won the day on May 2 2017

ralphb had the most liked content!

Community Reputation

1,204 Excellent


About ralphb

  • Rank

Contact / Social Media

Profile Information

  • Gender
  • Location
  • Interests
    Developers, developers, developers, developers

Recent Profile Visitors

8,343 profile views
  1. ralphb

    SDD 99

    BTW, another option for time keeping is to ask the remote server for its current time. But objection (1) remains, and also performance is poor since you'll need to call the server each time a date or time is needed. Anyway, I'll stick to the built-in RTC, which can also add one hour in hardware. You just need to trigger DST at the right moment. Time servers are an additional option.
  2. ralphb

    SDD 99

    When I clicked on that link, I got: That kind of performance is ... suboptimal. 🙂
  3. ralphb

    SDD 99

    Yes, I thought about this. There are two problem, though: 1. The Wifi connection on the SDD may be deactivated (or simply not configured), 2. The NTP server keeps UTC time, so we'd need timezone handling and still had the problem of DST.
  4. ralphb

    SDD 99

    BTW, one of the things I've been working on (besides Wifi) is the real-time clock, and specifically day-light saving time. I didn't really know how complicated this matter is. Anyway, I ended up supporting DST for the US (does Canada do the same?) and the EU (sans exceptions). Of course, the SDD must not (in fact, will most likely not) run exactly when the DST clock adjustment happens, so you need to adjust the clock any time after that date, but not before the end, and only once. And just try to add one hour to an arbitrary date -- you suddenly need to know about the number of days of all months, which includes knowing about leap years. 🤔 Also, when do you switch? Do you continuously (i.e., once a millisecond) wait for DST begin/end? Or do you check once at startup? I still have to test my solution, but I think I got it right. 😜
  5. ralphb

    SDD 99

    Thanks! 🙂 Funny that you mention it, but I was considering swapping the somewhat hacky Wifi module by Espressif for a more solid one by TI (and who could say no to TI? 😊). But then I'd have to start over with the software, even though it is rather simple. Also, the TI IC is one of those BGA-like thingies like the power regulator (which took me ten tries to make work), but with even more pads. 😱 Also, I thought that with the current Wifi module, I can implement a HTTP Client more easily, since there are proven libraries available. But then it occurred to me that when I already have a remote computer for file sharing, I can use that machine as HTTP Client as well, simplifying the firmware for the Wifi module significantly. I could also implement an HTTP Server, but what is the point of it is running on a regular PC(-like)? Would moving it back to the SDD change anything? (I'd say no.)
  6. Well, suppose I keep talking about a thing I'm about to release in a post. At some point, I'd want to know which name people prefer for that thing. Then of course I'd like to poll in that thread. If I'd do a poll in a new post, I'd address all people, many of whom had no clue what I'm talking about. In fact, I can only think of scenarios where you'd want to poll inside a thread, but not start one.
  7. I've just found the answer (from 2012): You need to start a new topic. Frankly, I find this slightly disappointing, since we'd have to clutter the forum with polls which are detached from their actual topic. Would there a better way to handle this?
  8. My apologies, but I couldn't figure out how to start a poll. Is there special syntax for the editor, or is this an option outside the editor?
  9. ralphb

    SDD 99

    It turns out that you cannot do all that much without memory. The main goal, though, was testing the update of the firmwares. The are two firmwares: one in the MCU, and the other in the Wifi module. I couldn't test the MCU update because of the memory problem, but I did learn that the update of the Wifi module via the MCU totally fails (because of a bad library). So I updated the board for plan B. 🤞 I couldn't test the RS232, either, as I managed to bork that interface four consecutive times. 😝 But anyway, I'll send for the new boards really soon. I resorted the traces to be out of the way of the memory, although you probably won't be able to tell that: Anyway, I'm focusing now on the must-haves before the release. I'd say that the availability this year is totally reasonable. I'll also send out trial boards for the next iteration.
  10. Should be very possible ... I figured you could just search for the symbol, but that's more difficult if you have multiple sources. As for the case, xas99 is case-insensitive, but converts everything to uppercase internally.
  11. Thanks for getting back. I figured as much about the cable, since it's not really straight, but gets twisted inside the TI quite a bit. I haven't bothered to fix it yet, since the shaking is gone, and I also got varying levels of green back. 😄 The 4x image was quite funny, since the TI 99 just crashed, and I didn't make use of any F18A features at all ...
  12. My apologies, I shouldn't only read the very last post! 😉
  13. While I don't know anything about the advanced graphics modes of the F18A, extending VDP RAM beyond 16K might cause problems if you try to read that directly with conventional methods, since writing any address larger than >3FFF to VDPWA would set the write bit in the VDP. You'll have to read from >3FFF all the way to the address you're interested in.
  14. That would actually be very interesting to implement! But even though I do own a Geneve, I haven't done anything with it yet -- postponed that after SDD is ready. 🥴 Assembling multi files at one is possible right now, also linking everything together to object code or binary. Not sure if the Geneve uses the same format, though. Also, chunking that into 8K segments is possible, but might need some extra handling. I don't have the GenPROG package, at least IIRC. Could you send that to me, please? Also I'd need more documentation about the actual Geneve format. I might have asked before, but are there any good sources for this? (Feel free to PM me, since this info might be offtopic.) I also do have a stuffed Geneve binder, maybe that contains file specs? Not that I could work on that immediately, but it'd be nice to switch between projects at times ...
  15. I've released version 3.1.0 of xdt99, in which I only updated xas99. The new features, which are partially incompatible with 3.0.0, are: BANKS. To define a bank, use BANK <b>, [<addr>]. If an address is given, it sets the base address for other BANK directives without address. Again, BANK ALL starts at the lowest address after all other banks, and raises the base address. SAVES. I've reverted the "minimal" address range when using SAVE and now generate values for the entire range. For example, a SAVE >2000,>4000 yields a file of 8K. To get the previous behavior back, use the minimize option -M. AUTO. A new directive AUTO determines the program location where all auto-generated constants should be places. Omitting AUTO is an error. Auto-constants are now bank-aware, so AUTO should be placed in each bank where auto-constants are used. After AUTO, no further auto-constants must be used. BANK CROSS-CHECKS. I now disabled cross-checks by default. To enable them, use -X. MACROS. Labels should now be retained. Also, the listing now contains information about source units/macros entered and resumed, e.g. **** **** > source1.asm COPY "source2.asm" **** **** > source2.asm ... < source1.asm ... .mac r0, r1 **** **** > MAC ... < source1.asm COLORS. The output of warnings and errors now uses color. On Linux and macOS, color is on by default. Since older version of Windows don't support so-called ANSI esc sequences, it's off by default. To enable/disable color manually, use --color on/off. MISC. Some additional warnings about incorrect operand usage, and more.
  • Create New...