Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

41 Excellent

1 Follower

About EdwardianDuck

  • Rank
    Space Invader

Profile Information

  • Gender

Recent Profile Visitors

1,707 profile views
  1. It's been a while, but here is an updated version. While porting this to the BBC Micro some problems were found in relation to how harder puzzles were being solved (e.g. BIGED.SUD on the disk). As a result of this there was a bit of a major rewrite, but as a result. It's a bit faster. It can solve harder puzzles more consistently. I found a list of ~26,000 really hard puzzles and it (well, the BBC version, but it's the same algorithm) managed to arrive at a valid solution for all of them. The first 10 of these are on the disk as EL*.SUD. That took a few days... There's a splash of colour. It can also import a puzzle from a text file (see TEXT01.TXT on the disk for the format) in a format which seems fairly common online. Jeremy Sudoku-20191221.atr
  2. Just a thought, but would changing these to short help? static unsigned char xStack[512]; static unsigned char yStack[512]; unsigned char stackentry = 1; i.e. static unsigned short xStack[512]; static unsigned short yStack[512]; unsigned short stackentry = 1; Because otherwise I think x will get truncated to 8 bits. It might not be necessary to change yStack though. Jeremy
  3. Alternatively, CA65 supports macros, so you could identify which MADS pseudo macros are used and write CA65 macros for what you need. If it turns out you only need MVA, MWA, INW etc., these are simply enough to write yourself, although using traditional macros you'll lose the optimisations MADS can make (OPT R+). For example. MVA #0 A MVA #0 B becomes LDA #0 STA A STA B whereas a traditional macro won't track this and you'll get LDA #0 STA A LDA #0 STA B Another area to consider is that CA65 is single pass only, so references to labels defined later on the source code (forward references?) won't get optimised to branches where the destination is close enough. Compare and contrast JNE in MADS and the equivalent in the longbranch "macpack" in CA65. Also .proc in CA65 doesn't implement the parameter passing features of MADS. Jeremy
  4. From a brief play (~30 minutes), my first impression is that this is a great game and, more importantly for me, one I can actually play! I'm not a great arcade game player and historically have stuck to text adventures, but the puzzle solving aspect works for me, especially as it seems one is not time limited in solving the levels (at least in story mode, easy). I might even be able to get a reasonable way through the levels. Also I'm playing it on a MiST (just load the .CAR file). As far as I can tell it works perfectly and sounds great through a half-decent Sony stereo. Thank you Jeremy
  5. If (and only if) I can make what I laughingly describe as the "AI" play a strong enough game then I plan to release an implementation of the obscure late '70s - early '80s board game Skirrid. The program is basically complete but is too easy to beat at this stage, even on the hardest level. Some notes in PDF form are attached which include some screenshots. Jeremy Skirrid - Atari Edition.pdf
  6. There are some structured programming macros for 6502 at http://wilsonminesco.com/StructureMacros/ which look promising, but I suspect your experience will vary by assembler. For example, I tried to modify the SELECT ... CASE ... ENDCASE to work with MADS a couple of weekends ago, but was unable to get them to work. I think it was something to do with MADS being n-pass rather than 2-pass but I have not had time to investigate further. Jeremy
  7. I suspect what I have used are known algorithms (the chance of me having invented something new is very, very small), but I didn't start from a book or other existing resource. That is to say, I worked out my simplistic strategy for solving the puzzles from first principles. Essentially the program tries to solve the puzzles as an inexperienced human solver would, looking for cells with single candidate values and values that can only be placed in one position. The program repeats these steps until it gets stuck, then it makes a guess and implements the same basic processes in a recursive manner. With the exception of the one additional check introduced in v0.4, this is all it does. I'm aware from solving puzzles manually that there are other algorithms that could be added, but so far I have only used what is (relatively) easy for me to program in 6502. Hopefully this helps. Jeremy
  8. I've more or less given up on getting this to work, given foft's suggestion that the MiST core's disk emulation is relatively poor. While it seemed that having config.sys on a disk image was having some effect, in the sense that the boot up messages were different, once I added ECHO statements it became clear that this was not being read / processed / or something. However, for completeness I tried the following: I modified the default config.sys on the CAR: device to add /A to SIO.SYS. I tried each of the drive speed settings offered in the MiST OSD. In each case a DIR command returned error 138 for the mounted disk image. So I've convinced myself that it isn't going to work. I'll use something else. Jeremy
  9. I finally got round to a little experimentation. I created disk images (I tried 90Kb and 180Kb sizes) and formatted using SDX on an emulator. I then created a minimal CONFIG.SYS as below. DEVICE SPARTA OSRAM DEVICE SIO /A On booting the MiST without the disk image mounted, I get a message about R-Time 8 not being present. This is what I expect when SDX is using the default CONFIG.SYS on the CAR: device. On booting the MiST with the disk image mounted, I don't get the R-Time 8 message. This makes me think that SDX is reading CONFIG.SYS from the disk image. Unfortunately I still get error 138 - Device timeout when I try any operation on the disk image (DIR for example). I also tried /C instead of /A for the SIO driver, which made no difference. Changing the speed setting in the MiST OSD for the drive emulation made no difference either. Jeremy
  10. Remapping via mist.ini sort of works, in the sense that the arrow keys drive the cursor round the screen in BASIC, but then of course the OSD doesn't work, which makes sense now that I think about it. In the end I remapped the arrows on the numeric keypad to F1-F4 and that's working, at least well enough for me. I may try mapping the "lazy T" arrow keys to F1-F4 AND the keys on the numeric keypad to the arrow keys as I'd still rather have the "lazy T" arrow keys in control when the Atari is active, but that's an exercise for the weekend. Below are the mappings I used in case this is of general interest. Jeremy [mist] key_remap=5E,3D key_remap=5C,3C key_remap=60,3A key_remap=5A,3B
  11. Interestingly, it seems like the core reads F1-F4 as the cursor keys (or at least it does when running the program I was trying), so I'll try mapping the keyboard's arrow keys to F1-F4 and see what happens. Thank you Jeremy
  12. I have a question about keyboard mapping. Is it possible to map the "lazy T" arrow keys on the physical USB keyboard to Control + +*=- to generate the normal Atari cursor move keystrokes? I noticed in the manual that the arrow keys are shown on the list of available keys, but these (as far as I can tell so far, being a MiST neophyte) are only used by the OSD. Jeremy
  13. My MiST arrived on Tuesday so I was able to briefly try this. As noted previously by Panther, the MaxFlash version boots, but trying to access a disk image mounted in drive 1 just gives Error 138 - Device Timeout. I get the same problem when trying to (re)format the disk or just get a directory listing. Booting Atari DOS from the same disk (it has DOS 2.5 on it) worked as expected. I don't really have any idea if the fact that the MaxFlash version boots on the MiST equates to "is suitable for running on it". I imagine that the SDX images which are not ~128Kb in size will be entirely unsuitable for the MiST. Jeremy
  14. 65816 support is something I'd be interested in, if it would fit on a MiST. Jeremy
  15. I was reading up on the MiST over lunch and was wondering if this remarkable device can run Spartados/X when the atari800 core is loaded? I've been unable to find anything online to confirm or deny this. Has anybody tried this? If it does work, can a partition (disk image) of a few Mb be mounted and used (read/write)? I don't own a MiST so I can't try it myself, or at least not yet. I'm asking because this might influence whether I order one or not. Jeremy
  • Create New...