flat assembler
Message board for the users of flat assembler.
Index
> Programming Language Design > Challenger Interpreter Goto page Previous 1, 2, 3 |
Author |
|
revolution 09 Sep 2009, 15:32
Nokia phones have the silly snake game. So perhaps you can make it like that.
|
|||
09 Sep 2009, 15:32 |
|
rugxulo 09 Sep 2009, 18:59
No way, someone should make a full-featured Blackjack: split, doubledown, surrender, insurance, etc.
|
|||
09 Sep 2009, 18:59 |
|
Tomasz Grysztar 19 Sep 2009, 12:07
As I have some ideas for Challenger 2.0, but it is likely I will not have any time to work on it soon, I'm going to write them down here, so they can wait for better times.
What I'd like to have is to get a kind of Core Wars, so Challenger 2.0 would allow unlimited multithreading - there would be a new instruction 'f', splitting any thread into two, the second one traveling perpendicularly. Each thread would have its own accumulator, DP and SP, but they all would share the same plane. So that they would be able to compete, communicate, and perhaps even interact in other interesting ways. Any thread reaching an exception state would simply vanish. As for the interpreter implementation, it would be optimized for more large-scale operation. The plane would be divided into large blocks, each one connected to four neighbours (just like the segments in Challenger 1.0), or with zero pointers when at the edge of allocated rectangular space. When plane needs to be expanded, the new row of blocks would be allocated and linked to the blocks on the current edge (again, like with segments in Challenger 1.0). Interpreter would start with just one block allocated. Internally, each block would consist of pointers to segments - each segment being a rectangular part of plane, like 100x100 cells. When some part of plane was not initialized yet, the pointer would still be zero, and the segment would get allocated only when needed. One block would be 100x100 segments, and since pointer to segment and cell would have the same size, the block data and segment data would be of the same size as well (well, it's not really important, but nice anyway). Large scale would be necessary to try to simulate some evolutionary behaviors. Perhaps some randomization features would be needed to add, too (though I'm not really sure about this one, see the article about Tierran Mutants linked earlier in this thread). |
|||
19 Sep 2009, 12:07 |
|
SFeLi 15 Dec 2010, 09:52
Tomasz Grysztar, there is a bug in your interpreter: pop edi after .program_initialized is excess as it actually pops an lpvAddress argument for VirtualFree, and thus changes ControllerDialogProc return address. It works in XP by accident, but in 9x it reboots/hangs an OS.
|
|||
15 Dec 2010, 09:52 |
|
Tomasz Grysztar 15 Dec 2010, 13:06
Thanks, I updated it.
|
|||
15 Dec 2010, 13:06 |
|
edfed 15 Dec 2010, 22:06
SFeLi wrote: Tomasz Grysztar, there is a bug in your interpreter: pop edi after .program_initialized is excess as it actually pops an lpvAddress argument for VirtualFree, and thus changes ControllerDialogProc return address. It works in XP by accident, but in 9x it reboots/hangs an OS. ok, it was the cause of the reboot i had when i tryed it... then, it's time to retest it. |
|||
15 Dec 2010, 22:06 |
|
Goto page Previous 1, 2, 3 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.