Jump to content

stepho

New Members
  • Content Count

    42
  • Joined

  • Last visited

Community Reputation

31 Excellent

About stepho

  • Rank
    Space Invader

Contact / Social Media

Profile Information

  • Gender
    Male
  • Location
    Perth, Western Australia
  • Interests
    Old cars, computer history

Recent Profile Visitors

323 profile views
  1. You mean he now has a PAL interface? (for plausible deniability, I *could* be talking about a TV standard)
  2. Sadly, our manufacturing department did the equivalent to me for a short run of custom Raspberry Pi hats. An IDC 2x10 way connector shroud was put in backwards, so they cut an extra notch. I saw the original notch but not the "corrected" notch and promptly let the blue magic smoke out of the RPi. It was too hard to remove the shroud and do it properly but at least I went back and filled in the original (but wrong) notch with plastic filler to stop a repeat. And we gave manufacturing an earful for the next run
  3. Put a small dollop of paint on the socket near where pin 1 should be. Take care to keep the paint out of the electrical bits.
  4. It is good practice to enclose any macro formulae in brackets. Eg: #define TOTAL_LEN 3+4 #define TOTAL_AREA TOTAL_LEN * TOTAL_LEN Gives an area of 3+(4*3)+4 = 19 . #define TOTAL_LEN (3+4) #define TOTAL_AREA ((TOTAL_LEN) * (TOTAL_LEN)) Gives an area of (3+4)*(3+4) = 49 . Some of those brackets are redundant but defensive programming puts multiple layers of defence so that certain classes of bugs just don't happen, regardless of how the earlier macros are defined or how the final macro is used. Every numeric macro is defined with enclosing brackets. Every numeric macro encloses each child macro with brackets. Apologies if I'm ranting
  5. In C, the normal way to put in a newline is: char *message = "hello, world!\n"; and let the compiler translate \n into whatever is required for your system ($9B for Atari 8 bit system). If the compiler doesn't do this then the next thing to try is: char *message = "hello, world!\x9b";
  6. Yep, that was common back then. Compilers and assemblers were hard to come by, expensive or ran on expensive development systems. So many hackers just did it by hand. I was never able to memorise all the opcodes myself but I know others who could disassemble a ROM just by eyeballing it. As in, he could look at a hex dump of a ROM, tell you what instructions were being called and (after a bit of thinking) tell you that it was a 16 bit multiple routine.
  7. I used to program 8051's in EFTPOS machines in the 1990's. Generally nice enough CPU's, although they had a few quirks - just like the 6502 has a few quirks. The big problem for using it in a general purpose machine is that code and RAM are in separate 64 kbyte address spaces. Which means code cannot execute from RAM. Which makes it hard to load programs from tape or disk. There are ways around it (eg use RAM chips to simulate ROM and then bank switch the RAM chips between the code address space and the RAM address space) but life is harder. But they make excellent CPU's for embedded systems running from ROM. And having 64 kB for code and another 64 kB for RAM sure is a lot nicer than 64 kB for everything and also run faster due to less wait states (wait states for code and RAM can overlap).
  8. stepho

    Chess

    Except I forgot to dot the "i"
  9. stepho

    Chess

    Combine a couple of them
  10. Doh! What was I thinking!
  11. EPROM type M27C512 matches the pinout shown by Oriskanytinterent . But I have no idea if that matches your actual chip.
  12. stepho

    Chess

    Presumably your engine speeds up when there are less pieces (kind of like Space Invaders when there is only 1 alien left). Could you search another ply for every X pieces removed from the board? And/or adjust quiescence for pieces removed.
  13. stepho

    Chess

    My 2c worth... I like the tops of the pawns being a bit dimmer. Gives them a slightly 3D look (like the top of a shaded sphere). The random element is a good thing. Technically, it makes it play a weaker game. But if we find a sequence of moves that win then we can replay those moves to win anytime - as boring as that would be. A self learning AI would learn and avoid those moves in the future but of course we understand that is another level of difficult above the current target. A slight random element is a good fall back to prevent repeatable play.
  14. stepho

    Chess

    I do remember when I was studying this about 40 years ago that the scoring of each potential board (ie the leaf nodes) was considered vital. In particular, scoring a group of pieces in relationship to other pieces rather than statically. See https://books.google.com.au/books?id=dzTY5Nf-IvMC&pg=PA221&lpg=PA221&dq=degroot%27s+law+of+chess&source=bl&ots=gbIBynajKz&sig=ACfU3U12wgwzvvnklFPq1Nu3UBiZSjHY2Q&hl=en&sa=X&ved=2ahUKEwjFlcSpkdjoAhUAH7cAHecDCyIQ6AEwAHoECA4QKQ#v=onepage&q=degroot's%20law%20of%20chess&f=false DeGroot's Law of Chess said something like "Better chess players play better chess because they are better at playing chess". By which he meant that better chess players could evaluate (ie score) a potential board better then lesser players. I also remember some early AI software in the 1980's that took everything it knew and tried to form relationships. It even did things like counted how many black and red squares there were after each move - just in case it changed. Of course it soon gave up on that but it showed that it was willing to look at anything. A later version of the same software could win mail based strategy games against humans by finding relationships that nobody else ever thought to look for. But that was only after playing thousands of games against itself to find the patterns. Wish I could remember the name of the software. True 6507 based AI is unlikely but perhaps an "expert system" with canned rules for scoring boards is possible. Something like, a pawn near an enemy queen is good, a knight near the enemy queen is real good, 2 bishops fencing in an enemy non-pawn piece is good. Just had a thought. The code, constants and strategies never change due to the ROM based nature of the 2600. But what if we allowed the cartridge a form of NVM (like some carts do for high scores) and allowed it to tweaked some of the weighted values in the board scoring mechanism. Over time it would get better, depending on what methods lost or won (was it Shannon who did this with a matchbox tic-tac-toe game? damn, my memory is getting worse). Many of the bigger programs did this (playing against itself thousands of times). Of course, this is a much more complex program than you have now and I'm truly impressed with what you have so far. (by the way, I suck at chess)
  15. stepho

    Chess

    Re: bad things Reminds me of the chess game in "Saturn 3". Kirk Douglas sacrifices his queen to win against the android.
×
×
  • Create New...