Can you please review my C codes and tell me if it is good so far?



  • Can you please review my C codes and tell me if it is good so far?
    [url]http://zzo38computer.cjb.net/powerxy/ForthBASIC/[/url]


    I don't know a lot of things about C programming, I only know a few things about it, so I want to know if it is good or not. Please tell me if something could be better than it already is, or if it is good just how it is.



  •  What C core are you talking about? I only see string_functions.c and some header files. The "String functions" may look like C, but they're really just a nightmare. Why on earth would you even think about passing parameters using global variables? Just because you may be getting the parameters from a stack-like structure doesn't mean you have to write functions that "look like" the machine you're trying to implement. That's just beyond crazy. Write maintainable, testable functions that take and return parameters and DO NOT RELY ON EXTERNAL CONDITIONS. Then get a loop to manage the stack, pop arguments from it, compute the results (using normal looking functions) and then push the result back onto the stack.

    I don't understand the header files either. Why does "stack.h" declare "char *" pointers? presumably you're not storing 8 bit but 32 bit addresses. Why aren't there any function declarations that operate on the stack? push/pop/top, etc?

    What's going on in "datatypes.h"? You can typedef your own types, and use sizeof to determine their size. Why avoid all that and hack in values using preprocessor defines?

     



  • I am glad you asked.

    @Nandurius said:

    What C core are you talking about? I only see string_functions.c and some header files. The "String functions" may look like C, but they're really just a nightmare. Why on earth would you even think about passing parameters using global variables? Just because you may be getting the parameters from a stack-like structure doesn't mean you have to write functions that "look like" the machine you're trying to implement. That's just beyond crazy.

    I am passing parameters in global stack because it is a combination of Forth and BASIC (any line that says FORTH or _FORTH at the beginning (possibly after the line number, if that line has a line number) is treated as a Forth code). Also, I didn't have enough time to write all of it yet, I just write the parts that I understand how, and also I didn't have time to write all of it, and I am getting help for some of the other parts.

    @Nandurius said:

    Write maintainable, testable functions that take and return parameters and DO NOT RELY ON EXTERNAL CONDITIONS. Then get a loop to manage the stack, pop arguments from it, compute the results (using normal looking functions) and then push the result back onto the stack. I don't understand the header files either.

    No answer (yet).

    @Nandurius said:

    Why does "stack.h" declare "char *" pointers? presumably you're not storing 8 bit but 32 bit addresses.

    Actually I am storing all sorts of stuff in the stack.

    @Nandurius said:

    Why aren't there any function declarations that operate on the stack? push/pop/top, etc?

    I do intend to write "push/pop/top, etc", just I didn't have time quite yet. I will do it later today probably.

    @Nandurius said:

    What's going on in "datatypes.h"? You can typedef your own types, and use sizeof to determine their size. Why avoid all that and hack in values using preprocessor defines?

    The stuff in "datatypes.h" are BASIC types, not C types.



  • I wish I had the slightest clue what goes through your head, though I imagine it would terrify me. As to the code, it's only good if you're trying out for working on GNU coreutils or something. They love ugly code.



  • Another thing, I saw that dsw. file in your ForthBASIC directory. You aren't by any chance using MS Visual C++ 6.0, are you? If so, you should definitely upgrade to Visual C++ 2008. The express edition is totally free and uses the same compiler as the Professional and Enterprise editions:  http://www.microsoft.com/express/vc/

    Compared to the old 6.0 compiler, this is a vastly superior compiler and the IDE beats the pants off of the old one, too.

     



  • @antred said:

    Another thing, I saw that dsw. file in your ForthBASIC directory. You aren't by any chance using MS Visual C++ 6.0, are you? If so, you should definitely upgrade to Visual C++ 2008. The express edition is totally free and uses the same compiler as the Professional and Enterprise editions:  http://www.microsoft.com/express/vc/

    Compared to the old 6.0 compiler, this is a vastly superior compiler and the IDE beats the pants off of the old one, too.

     

    I might upgrade later (one thing I know about it though, is that you need a hotmail account even to register for a FREE program). But I'm not using that compiler. I'm using pure C, not C++, and I'm using only the Microsoft IDE for color coding. The actual program is meant for compile on Linux (probably sometime in the summer I will get a Linux computer). I will have to link it with SDL in frame-buffer mode, and make it work with the specialized hardware I am designing (it uses a IBM compatible motherboard and case and power supply and hard drive and memory and video and audio, but the rest of the hardware is different, and the BIOS is also different, and it has to work with TVs as well as with computer monitors)



  • @zzo38 said:

    (one thing I know about it though, is that you need a hotmail account even to register for a FREE program)
    No, I think you just need any email address, if I remember correctly.
    @zzo38 said:
    The actual program is meant for compile on Linux (probably sometime in the summer I will get a Linux computer).
    Dude, do you have a computer? Then you probably have a Linux computer. Just DL it, install and dual boot. They couldn't make it much easier these days.



  •  @zzo38 said:

    Can you please review my C codes and tell me if it is good so far?

    It is like having a 3 year old bring you a finger painting. Except that is this case you notice an awful aroma as you are putting it on the fridge. And then you suddenly realize that little zzo wasn't in the playroom, he was in the bathroom, and you don't have any finger paint!



  • Don't ridicule him, educate him. 



  • @antred said:

    Don't ridicule him, educate him. 

     

    Why don't you actually read some of his other posts, and look at his website? 

    There is no helping this one, he is too far gone.



  • @MasterPlanSoftware said:

    Filed under: Also this is not the 'Teach me programming I am clueless' forum.

    Actually, it is Coding Related Help and Questions.  I think zzo is probably too far gone as well, but if there was any place on here where he should be asking these questions, this is probably it.



  • @morbiuswilters said:

    Actually, it is Coding Related Help and Questions.  I think zzo is probably too far gone as well, but if there was any place on here where he should be asking these questions, this is probably it.
     

    It is a 'help' forum. Not a 'teach me everything because I might have been dropped on my head one too many times as a baby' forum.

    Look at what he is doing, and how he is doing, and read his website. I think you will reach the same conclusions I have.



  • @zzo38 said:

    Can you please review my C codes and tell me if it is good so far?
     

    Writing your own uppercase function is IMO reinventing the wheel. If you really feel you have to, use the switch() statement instead of those if.

    Having your functions work directly on the stack is a questionable decision, though it might work for you. Anyway, I'm afraid you are trying something way to big for you currently. Don't become another SpectateSwamp.



  • @antred said:

    Don't ridicule him, educate him. 

    How? I mean, where the hell do you start with something like this?



  • @morbiuswilters said:

    Actually, it is Coding Related Help and Questions.  I think zzo is probably too far gone as well, but if there was any place on here where he should be asking these questions, this is probably it.

    I'd say zz's questions go past the "what's the answer for question #37 on the homework" into "please do my homework for me" realm. It's one thing to ask for help on general topics, or a specific point in a small chunk of code. It's another to dump entire programs and seem to expect people to fix it for you. Next thing you know he'll be wanting us to critique his version of War & Peace, because Tolstoy was such a hack...



  • @MarcB said:

    It's another to dump entire programs
     

    Where do you see a program?

    I see a messed up string library that is supposed to be the beginning of some kind of emulator...



  • @MasterPlanSoftware said:

    Where do you see a program?
     

    It's about as much a program as Swampie's search.txt, though at least the opening comments in zz's stuff are least english, even if they are boilerplate.

    But my point remains: "Please make my incomprehensible crap work" is not "please help me with <some specific problem>". 



  • @MarcB said:

    @MasterPlanSoftware said:

    Where do you see a program?
     

    It's about as much a program as Swampie's search.txt, though at least the opening comments in zz's stuff are least english, even if they are boilerplate.

    But my point remains: "Please make my incomprehensible crap work" is not "please help me with <some specific problem>". 

     

    Fair enough, just wanted to make sure I wasn't missing something.



  • @MasterPlanSoftware said:

    Where do you see a program?

    I see a messed up string library that is supposed to be the beginning of some kind of emulator...

    That's because the program isn't complete yet.



  • @zzo38 said:

    That's because the program isn't complete yet.
     

    I think you mean the thought isn't complete. In fact, I don't know of a better example of 'half baked'.



  • @MasterPlanSoftware said:

    @zzo38 said:

    That's because the program isn't complete yet.
     

    I think you mean the thought isn't complete. In fact, I don't know of a better example of 'half baked'.

     

    Word.



  • @Doctor Steel said:

    @MasterPlanSoftware said:

    @zzo38 said:

    That's because the program isn't complete yet.
     

    I think you mean the thought isn't complete. In fact, I don't know of a better example of 'half baked'.

     

    Word.

    FOAD troll. Word is reasonably well designed, and it is a useful application. Neither apply to this codebase.

    Even SSDS is less half-baked than this. After all, Swampy manages to achieve something with SSDS, but this code is seemingly useless (a basic interpreter written in C which seems to have something (although I have no idea what) to do with Forth?). It is also apparently broken. In fact, this is not so much half-baked as completely non-baked. In fact, to take a metaphor to the point of ridiculousness, zzo38 hasn't even got the ingredients out of the cupboard. Almost none of it is any good.



  • @Physics Phil said:

    FOAD troll. Word is reasonably well designed, and it is a useful application. Neither apply to this codebase.

    I think he meant "word" as in street-language for "affirmative". 



  • @morbiuswilters said:

    @Physics Phil said:

    FOAD troll. Word is reasonably well designed, and it is a useful application. Neither apply to this codebase.

    I think he meant "word" as in street-language for "affirmative". 

    Word.



  • @bstorer said:

    @morbiuswilters said:

    @Physics Phil said:

    FOAD troll. Word is reasonably well designed, and it is a useful application. Neither apply to this codebase.

    I think he meant "word" as in street-language for "affirmative". 

    Word.
     

    Excel.



  • @MasterPlanSoftware said:

    @bstorer said:

    @morbiuswilters said:

    I think he meant "word" as in street-language for "affirmative". 

    Word.

    Excel.

    Translation: "please attempt to excel more at structuring longer sentences."  



  •  I see that some new code has appeared, a first stack operation.

     

    // Discard top value of stack.
    // ( value -- )
    void basicfn_drop(void) {
    unsigned char t=*stackptr++;
    if(t==BTYPE_NULL) {
    // nothing to do!
    } else if(t==BTYPE_U8) {
    stackptr++;
    } else if(t==BTYPE_U16 || t==BTYPE_S16) {
    stackptr++; stackptr++;
    } else if(t==BTYPE_U32 || t==BTYPE_S32) {
    stackptr++; stackptr++; stackptr++; stackptr++;
    } else if(t==BTYPE_RAWSTR || t==BTYPE_437STR || t==BTYPE_NKSTR) {
    int L= *(int *) stackptr; stackptr += sizeof(int);
    while(L) {
    stackptr++; L--;
    }
    stackptr++; // for the terminating null, used to send BASIC strings to C function calls
    }
    // TODO: Other data types
    }

    Comments:

    1. Don't combine assignment and data manipulation: "unsigned char t=*stackptr++;" Don't try to be cryptic when you write code. Split up the line into the logically independent tasks: Take the top bye from the stack: t = *stackptr; Remove the byte from the stack: stackptr++;
    2. What the hell is this: "stackptr++; stackptr++; "? You know computers can add more than one. stackptr += 2; or stackptr += 4 in the following case.
    3. What's up with this cast? "int L= *(int *) stackptr;"? Wouldn't a "raw string" process one byte at a time? Why are there two assignments on a single line? I'm sure you can afford the space for the extra linebreak.
    4. You're finally using stackptr += sizeof(...) here, why not before?
    5. Don't write "while(L)", again this is needlessly cryptic. State your intentions when you code: while(L != 0) ...
    6. L--? Is this supposed to be portable code that works with various sizes of int? The other cases all seem to imply fixed encodings, yet here you're using sizeof() and rely on integer pointer manipulation arithmetic. What gives?
    7. You're well on the way of writing redundant code. Do you have any design/concept/plan for the organization and structure of the program? How are you planning on writing a stack "pop" operation? You'll have to write this wholepart again, to figure out what the top value on the stack is. It would be much better to reuse code: Write the pop operation that removes the top value from the stack. Once you have that, the "drop" operation is just a special case (call pop and discard the return value.)
    I'm also intrigued by this concept you have for encoding Japanese glyphs. My first thought would've been to use unicode, but I'm sure you have reasons not to. What's Power X Y btw?


  • @Nandurius said:

     I see that some new code has appeared, a first stack operation.

     

    // Discard top value of stack.
    // ( value -- )
    void basicfn_drop(void) {
    unsigned char t=*stackptr++;
    if(t==BTYPE_NULL) {
    // nothing to do!
    } else if(t==BTYPE_U8) {
    stackptr++;
    } else if(t==BTYPE_U16 || t==BTYPE_S16) {
    stackptr++; stackptr++;
    } else if(t==BTYPE_U32 || t==BTYPE_S32) {
    stackptr++; stackptr++; stackptr++; stackptr++;
    } else if(t==BTYPE_RAWSTR || t==BTYPE_437STR || t==BTYPE_NKSTR) {
    int L= *(int *) stackptr; stackptr += sizeof(int);
    while(L) {
    stackptr++; L--;
    }
    stackptr++; // for the terminating null, used to send BASIC strings to C function calls
    }
    // TODO: Other data types
    }

    Comments:

    1. Don't combine assignment and data manipulation: "unsigned char t=*stackptr++;" Don't try to be cryptic when you write code. Split up the line into the logically independent tasks: Take the top bye from the stack: t = *stackptr; Remove the byte from the stack: stackptr++;
    2. What the hell is this: "stackptr++; stackptr++; "? You know computers can add more than one. stackptr += 2; or stackptr += 4 in the following case.
    3. What's up with this cast? "int L= *(int *) stackptr;"? Wouldn't a "raw string" process one byte at a time? Why are there two assignments on a single line? I'm sure you can afford the space for the extra linebreak.
    4. You're finally using stackptr += sizeof(...) here, why not before?
    5. Don't write "while(L)", again this is needlessly cryptic. State your intentions when you code: while(L != 0) ...
    6. L--? Is this supposed to be portable code that works with various sizes of int? The other cases all seem to imply fixed encodings, yet here you're using sizeof() and rely on integer pointer manipulation arithmetic. What gives?
    7. You're well on the way of writing redundant code. Do you have any design/concept/plan for the organization and structure of the program? How are you planning on writing a stack "pop" operation? You'll have to write this wholepart again, to figure out what the top value on the stack is. It would be much better to reuse code: Write the pop operation that removes the top value from the stack. Once you have that, the "drop" operation is just a special case (call pop and discard the return value.)
    I'm also intrigued by this concept you have for encoding Japanese glyphs. My first thought would've been to use unicode, but I'm sure you have reasons not to. What's Power X Y btw?

    OK, I will answer this question to you:

    1. No, it's clear. I like C because it allows you to do such things, and it goes together anyways, that is why it is together.
    2. O! Sometimes I write a code and later realize it is bad coding and wonder what I was thinking at that time. Thanks, I fixed that!
    3. That is for the length of the string. I added a comment. They are on the same line because they go together.
    4. Because I don't know what I was thinking about before, but I fixed the before one.
    5. No, this is clear if you program in C. It is clear to other people that I have talked to, also.
    6. It has nothing to do with sizes of int. L is the length of the string (I need the length because BASIC strings are allowed to contain embedded NULLs). The string is still a byte at a time (the length is in bytes, in NKSTRs the number of characters may be different).
    7. I do have a plan. A code that needs to pop a value, if it isn't one it understands will call basicfn_drop() and if it does understand, will remove the values itself.
    8. I didn't use unicode because it is more complicated to write a program for dealing with unicode than with NK strings.
    9. POWER X Y system is a new combination computer/game-console system my company makes, designed to fix nearly everything, with everything in GNU GPL, including the BIOS. I will build specialized hardware for it (but it will still use a standard PC motherboard), and the designs for the hardware are also GNU GPL. It will include an increased security, also. I do have a partner in my company (which sells other stuff as well, including books). External software for POWER X Y system is not necessarily GNU GPL, it could be proprietary software, but the built-in software isn't proprietary software. Unlicensed software will be allowed but there will also be a small fee license for verification of proper function, that can be included in list on web-site of proper function, and allows them to put "verification" logo on the DVD box, and making sure your software doesn't void the warranty.



  • @Physics Phil said:

    ........a basic interpreter written in C which seems to have something (although I have no idea what) to do with Forth?). It is also apparently broken. In fact, this is not so much half-baked as completely non-baked. In fact, to take a metaphor to the point of ridiculousness, zzo38 hasn't even got the ingredients out of the cupboard. .....

    I do not get ingredients out of cupboard because I don't have ingredients to get out of cupboard yet.

    What it has to do with Forth is that you can combine BASIC codes and Forth codes in the same program. Any line that says FORTH at the beginning (after the line number, if there is any line numbers on that line) is treated as a Forth codes, the rest of the lines are treated as BASIC codes.



  • @zzo38 said:

    POWER X Y system is a new combination computer/game-console system my company makes, designed to fix nearly everything, with everything in GNU GPL, including the BIOS. I will build specialized hardware for it (but it will still use a standard PC motherboard), and the designs for the hardware are also GNU GPL. It will include an increased security, also. I do have a partner in my company (which sells other stuff as well, including books). External software for POWER X Y system is not necessarily GNU GPL, it could be proprietary software, but the built-in software isn't proprietary software. Unlicensed software will be allowed but there will also be a small fee license for verification of proper function, that can be included in list on web-site of proper function, and allows them to put "verification" logo on the DVD box, and making sure your software doesn't void the warranty.

     

    This is hilarious! I suppose after implementing the BIOS yourself (can't be hard, right?)  and "fixing" everything for years your company can sell a most likely non-booting, obsolete PC based gaming system that can run a subset of BASIC and FORTH...together! Now if that isn't a feature to die for I'll be damned.

     Seriously, your plan sounds ridiculous and I think you should rather sell books with your friend. This thread was better than many articles here.



  • @zzo38 said:

    POWER X Y system is a new combination computer/game-console system my company makes, designed to fix nearly everything.
     

    Now you got my attention.

    What is nearly everything ? Fix how ?

    @zzo38 said:

    It will include an increased security, also.

    What does this mean ? 

    Since we're talking about @zzo38 said:

    game-console system
    , what about the graphics card ?

    Which operating system, version ?

    And since you obviously thought this through, could you give a few reasons why would production houses/game studios support this console ? and on the other side, why should someone buy this system and not Xbox/Wii/PS ? 

    And finally, what do BASIC and FORTH have to do with this console ? Your not planing to put an BASIC/FORTH interpreter in BIOS, are you ?



  • @Nelle said:

    @zzo38 said:

    POWER X Y system is a new combination computer/game-console system my company makes, designed to fix nearly everything.
     

    Now you got my attention.

    What is nearly everything ? Fix how ?

    Some of the things include:

    • Fixes some bugs in other game console systems, such as Wii doesn't have a option to auto-start, and not having buttons on the front panel for "pause game" and stuff like that. (This one will have CANCEL - + ACCEPT buttons and 4 lights, blue, yellow, green, red, and also a display 4 digits.)
    • Fixes the problems we have today with DRM and with companies being greedy.
    • Many times today people force you to update computer, and pay more, and making more incompatibilities and other stuff like that. This one, even more updates should be designed to not make incompatibilities and forcing you to pay more.
    • Modern computers are design to be user-friendly at the expense of other stuff, that is no good. This one is not design to be user-friendly, but it can still be easy to use most of the functions that you will need to use. Mostly you just have to push START and it will go, other times you can use the menu. For more complicated things, you can access the BASIC/Forth interpreter or the Linux command-line.
    • Modern computers don't do what old computer like Commodore 64 does, that you can write your own program using BASIC, and it will run OK.
    • It is harder to install a virus on the computer, because of the increased security, but you still have more controls over the system than other people (including me) do. The computer obeys you, they don't obey Hollywood anymore!
    • Now you can (if you really want to), enter the bootstrap codes manually using the front panel, without needing any keyboards, game controller, IR remote control, USB, TV, computer monitor, etc to do so! (But without the external stuff, it isn't really that useful)
    • Nintendo requires a verification license and developer license for each software you wrote. Mine doesn't require a developer license, and verification license will be optional but still exist, but lower price a bit. It is recommended, to make sure they follow some good standards and allow them to use our trademarks in some more ways than you normally can.
    • Even though I don't want copy protection on the software I wrote, some companies do, so, there will be a way of copy protection using a security dongle, which actually makes it more effective than other copy protection system anyways, and can still have the operating system and built-in programs to be GNU GPL license.
    • Other computers crash too often and boot up too slowly
    • And more things other than just that...

    @Nelle said:

    @zzo38 said:

    It will include an increased security, also.

    What does this mean ? 

    There will be a "root-sticker" on the back, with the root password. Other programs don't know that password and can't install a virus or stuff (there will be other ways of increased security as well, not just this), but the owner of it can still enter the root password to modify the system more, if they want to.

    @Nelle said:

    Since we're talking about "game-console system", what about the graphics card ?

    Which operating system, version ?

    Of course I need a graphics card but I don't know yet completely. Operating system will be Linux, probably the newest version, but with many modifications, including modifying the kernel. Some modifications to make it faster, other modification for different purposes.

    @Nelle said:

    And since you obviously thought this through, could you give a few reasons why would production houses/game studios support this console ? and on the other side, why should someone buy this system and not Xbox/Wii/PS ?

    People who buy POWER X Y system are still allowed to buy other system as well. We won't stop them, and we don't really intend to do so. Companies can make software for POWER X Y system for various reasons:

    • Reduced development cost and licensing cost
    • Small companies that can't afford the other system or are unable to comply with their restrictions
    • Make multi-system DVDs, that work for multiple systems
    • Support of XY-MINI, which is OK even for handheld systems. XY-MINI is also an easier way to make sure it works on multiple-system, but you can do it other ways as well, including a normal Linux C program
    • Companies that like the FOSS system, regardless of whether or not they write FOSS

    I also plan to sell a multi-games DVD for a low price (such as $5.00 in Canadian money), with many different games, some I wrote myself and some other public domain software. It will be designed many of them can run on other systems as well (Windows, Mac, Linux, Yellow Dog Linux, Game Boy Advance, etc) but to run all of the games/software on the DVD, you need POWER X Y system to do that.

    @Nelle said:

    And finally, what do BASIC and FORTH have to do with this console ? Your not planing to put an BASIC/FORTH interpreter in BIOS, are you ?

    I do not plan to make BASIC/FORTH interpreter in BIOS. The BASIC/FORTH interpreter will be a separate program, that will start automatically after auto-login. By default it will display a menu (but you can change the setting to turn that off if you want to, or toggle between BASIC/FORTH and menu, by pushing all 4 front panel buttons at same time), with text-mode and skin mode (I like text-mode, but some people don't, so it will accept skin-mode as well).

    I already created some of the circuit diagrams as well, but it isn't complete yet.

    Does this message answer your question(s)? Maybe if I don't write it completely clearly you will not understand, but I hope you do understand what I wrote.



  • @joga said:

    This is hilarious! I suppose after implementing the BIOS yourself (can't be hard, right?)  and "fixing" everything for years your company can sell a most likely non-booting, obsolete PC based gaming system that can run a subset of BASIC and FORTH...together! Now if that isn't a feature to die for I'll be damned.

     Seriously, your plan sounds ridiculous and I think you should rather sell books with your friend. This thread was better than many articles here.

    I won't implement the BIOS completely myself, I will get coreboot and modify it.

    It won't run only a subset of BASIC and FORTH, it will have more commands, from many different kind of BASIC (for improved compatibility), and it can run everything (such as compiled Linux programs), not only BASIC and FORTH anyways. You can run other software as well.

    I will sell books as well, he might write some and I help also, maybe include some type-in BASIC programs also, including URL to download so that if you have internet connection you can type: LOAD "http://blablablabla.example.net/jakljdsflkj.bas" and it will load.



  • @zzo38 said:

    Fixes some bugs in other game console systems, such as Wii doesn't have a option to auto-start, and not having buttons on the front panel for "pause game" and stuff like that. (This one will have CANCEL - + ACCEPT buttons and 4 lights, blue, yellow, green, red, and also a display 4 digits.)

    • What does auto-starting a games console mean in practice?
    • Nice that you've noticed the obvious problem of the Wii, I too thought pressing a button on the Wiimote to pause the game was too fancy and easy.
    • It sounds like a VCR without a remote.
    @zzo38 said:
    • Fixes the problems we have today with DRM and with companies being greedy.

    That's for sure. If there's no content, you don't need DRM.

    @zzo38 said:


    • Many times today people force you to update computer, and pay more, and making more incompatibilities and other stuff like that. This one, even more updates should be designed to not make incompatibilities and forcing you to pay more.

    So after using your PC console for two years, do I get a free hardware upgrade?

    @zzo38 said:


    • Modern computers are design to be user-friendly at the expense of other stuff, that is no good. This one is not design to be user-friendly, but it can still be easy to use most of the functions that you will need to use. Mostly you just have to push START and it will go, other times you can use the menu. For more complicated things, you can access the BASIC/Forth interpreter or the Linux command-line.

    Do you use the command line with the 4 front panel buttons or do you also ship a clunky keyboard from 30 years ago for BASIC coding?

    @zzo38 said:


    • Modern computers don't do what old computer like Commodore 64 does, that you can write your own program using BASIC, and it will run OK.

    Oh? What do you mean by running OK? Last I checked my computer was a pretty versatile tool that I could use to code in many different languages and it still works...

    Why not run a C64 emulator at boot?

    @zzo38 said:

    • It is harder to install a virus on the computer, because of the increased security, but you still have more controls over the system than other people (including me) do. The computer obeys you, they don't obey Hollywood anymore!

    I think mostly Vista owners get orders from Hollywood.

    @zzo38 said:


    • Now you can (if you really want to), enter the bootstrap codes manually using the front panel, without needing any keyboards, game controller, IR remote control, USB, TV, computer monitor, etc to do so! (But without the external stuff, it isn't really that useful)

    You need "bootstrap codes" to use this thing? Now that's user friendly!

    @zzo38 said:


    • Even though I don't want copy protection on the software I wrote, some companies do, so, there will be a way of copy protection using a security dongle, which actually makes it more effective than other copy protection system anyways, and can still have the operating system and built-in programs to be GNU GPL license.

    Have you already designed the dongle?

     @zzo38 said:

    • Other computers crash too often and boot up too slowly
    • And more things other than just that...

    I'm sure everyone switches to your computer games console instead when they hear about the nice front panel and Forth.

    @zzo38 said:


    There will be a "root-sticker" on the back, with the root password. Other programs don't know that password and can't install a virus or stuff (there will be other ways of increased security as well, not just this), but the owner of it can still enter the root password to modify the system more, if they want to.

    Can the owner change the root password? And after some malicious program you download from the net asks for your credentials convincingly and ruins the system after that, how do you fix?

    @zzo38 said:
    • Reduced development cost and licensing cost

    Unless they want the dongle, hehe. Why would anyone buy the games anyway if it's simple to copy them?

    @zzo38 said:
    • Make multi-system DVDs, that work for multiple systems

    What does this mean exactly?

    @zzo38 said:


    • Support of XY-MINI, which is OK even for handheld systems. XY-MINI is also an easier way to make sure it works on multiple-system, but you can do it other ways as well, including a normal Linux C program

    And this?

    @zzo38 said:


    I also plan to sell a multi-games DVD for a low price (such as $5.00 in Canadian money), with many different games, some I wrote myself and some other public domain software. It will be designed many of them can run on other systems as well (Windows, Mac, Linux, Yellow Dog Linux, Game Boy Advance, etc) but to run all of the games/software on the DVD, you need POWER X Y system to do that.

    So the software runs everywhere? Good luck with that.

    @zzo38 said:


    I already created some of the circuit diagrams as well, but it isn't complete yet.

    Please do post some of these, would be interesting!



  • @joga said:

    @zzo38 said:

    Fixes some bugs in other game console systems, such as Wii doesn't have a option to auto-start, and not having buttons on the front panel for "pause game" and stuff like that. (This one will have CANCEL - + ACCEPT buttons and 4 lights, blue, yellow, green, red, and also a display 4 digits.)

    • What does auto-starting a games console mean in practice?
    • Nice that you've noticed the obvious problem of the Wii, I too thought pressing a button on the Wiimote to pause the game was too fancy and easy.
    You do not understand. Auto-start means that if the DVD is inserted then when you turn it on it will run that software from DVD automatically. Nintendo DS you can toggle that, but Wii they still didn't add that (hopefully they will add it, but I have no control over what they add to the Wii). Mine you can still toggle if you want to, as well. You can still pause the game by pushing a button like START button on game controller or whatever, but to give one example, in Super Smash Bros Melee you can disable pause, in which case you can't pause it. There should still be a way to pause it by push button directly on front panel, in case you really need to.

    @joga said:

    @zzo38 said:


    • Many times today people force you to update computer, and pay more, and making more incompatibilities and other stuff like that. This one, even more updates should be designed to not make incompatibilities and forcing you to pay more.

    So after using your PC console for two years, do I get a free hardware upgrade?

    No, but if you send it in, we will upgrade the hardware and software at a reduced price, without having to buy a whole new one or transfer the files or stuff like that, because it won't change much, and it won't cause incompatibilities.

    @joga said:

    @zzo38 said:


    • Modern computers are design to be user-friendly at the expense of other stuff, that is no good. This one is not design to be user-friendly, but it can still be easy to use most of the functions that you will need to use. Mostly you just have to push START and it will go, other times you can use the menu. For more complicated things, you can access the BASIC/Forth interpreter or the Linux command-line.

    Do you use the command line with the 4 front panel buttons or do you also ship a clunky keyboard from 30 years ago for BASIC coding?

    You don't need to use the command-line or learn BASIC at all to use this system. You use a keyboard to use the command-line, and the keyboard is optional. You can use a normal PC keyboard, but the specification of POWER X Y says the function keys should be moved to the left, and a few other things (relabeling some of the keys is one thing), but you can ignore that if you want to.

    @joga said:

    @zzo38 said:


    • Modern computers don't do what old computer like Commodore 64 does, that you can write your own program using BASIC, and it will run OK.

    Oh? What do you mean by running OK? Last I checked my computer was a pretty versatile tool that I could use to code in many different languages and it still works...

    Why not run a C64 emulator at boot?

    It still is a pretty versatile tool that I could use to code in many different languages and it still works. You don't need to use BASIC to use this at all, it is just something that it has. The only difference in this case is that most computers (or game consoles) now do not display a BASIC (and Forth, in a combination) interpreter when you turn it on. It won't run a C64 emulator at boot because it isn't a C64, it can run other programs as well.

    @joga said:

    @zzo38 said:


    • Now you can (if you really want to), enter the bootstrap codes manually using the front panel, without needing any keyboards, game controller, IR remote control, USB, TV, computer monitor, etc to do so! (But without the external stuff, it isn't really that useful)

    You need "bootstrap codes" to use this thing? Now that's user friendly!

    You don't need bootstrap codes. It will automatically boot from the hard drive if you don't enter anything else. The bootstrap is just there if anyone needs it.

    @joga said:

    @zzo38 said:


    • Even though I don't want copy protection on the software I wrote, some companies do, so, there will be a way of copy protection using a security dongle, which actually makes it more effective than other copy protection system anyways, and can still have the operating system and built-in programs to be GNU GPL license.

    Have you already designed the dongle?

    Only a little bit.

    @joga said:

     @zzo38 said:

    • Other computers crash too often and boot up too slowly

    • And more things other than just that...

    I'm sure everyone switches to your computer games console instead when they hear about the nice front panel and Forth.

    Actually I think only one person will buy it based solely on the nice front panel and/or Forth. That isn't completely the point.

    @joga said:

    @zzo38 said:


    There will be a "root-sticker" on the back, with the root password. Other programs don't know that password and can't install a virus or stuff (there will be other ways of increased security as well, not just this), but the owner of it can still enter the root password to modify the system more, if they want to.

    Can the owner change the root password? And after some malicious program you download from the net asks for your credentials convincingly and ruins the system after that, how do you fix?


    The owner can change the password the same way you do in Linux, and you usually don't need to anyways. If a program asks for the root password and messes up the system, we won't fix it because the warranty is void. You should have paid attention to the manual and not done such a things!

    @joga said:

    @zzo38 said:
    • Reduced development cost and licensing cost

    Unless they want the dongle, hehe. Why would anyone buy the games anyway if it's simple to copy them?

    You can still try including other forms of copy-protection if you want to, but even Wii DVDs have been copied a lot.

    @joga said:

    @zzo38 said:
    • Make multi-system DVDs, that work for multiple systems

    What does this mean exactly?

    @zzo38 said:


    • Support of XY-MINI, which is OK even for handheld systems. XY-MINI is also an easier way to make sure it works on multiple-system, but you can do it other ways as well, including a normal Linux C program

    And this?

    It means I didn't write very clearly.

    @joga said:

    @zzo38 said:


    I also plan to sell a multi-games DVD for a low price (such as $5.00 in Canadian money), with many different games, some I wrote myself and some other public domain software. It will be designed many of them can run on other systems as well (Windows, Mac, Linux, Yellow Dog Linux, Game Boy Advance, etc) but to run all of the games/software on the DVD, you need POWER X Y system to do that.

    So the software runs everywhere? Good luck with that.


    Not quite everywhere. The software that it isn't hard to run on multiple systems will have a program to make it run on multiple systems, the other ones won't.

    @joga said:

    @zzo38 said:


    I already created some of the circuit diagrams as well, but it isn't complete yet.

    Please do post some of these, would be interesting!


    I might post it later.



  • @zzo38 said:

    The only difference in this case is that most computers (or game consoles) now do not display a BASIC (and Forth, in a combination) interpreter when you turn it on.
     

    they did once... old ibm pcs (and several clones) had BASIC interpreter in BIOS...if no boot record was detected on the floppy, they would automatically load BASIC...

    this feature was dropped because noone wanted it...

    as a substitute, they packaged first GWBasic and later QBasic within the operating system, which was dropped because noone wanted it ...

    do you see a pattern here ? 

    NO ONE WANTS IT  

     

    and why in gods name Forth ? why not whitspace interpreter ? or brainfuck ?

    at least then you could sell them to masochists.

    that would be kinda cool, to go to the sex shop and see a computer console with brainfuck interpreter next to the lether outfits and whips and dildos ...

    think hard core man ...

     

    but seriously the idea is great: an open source console ...

    very nice indeed ... and then you took the swampy way ... 


    first you started writing a Basic/Forth interpreter ... on a linux based console ...

    Why invent the wheel again ?

    there are several free (as in beer) basic interpreters out there .. just take one of them and jam it ...

    http://www.thefreecountry.com/compilers/basic.shtml 

    this was just the first hit on google .... sourceforge has certanly several more ... 

    and this too is could be a good idea, you take an existing basic interpreter, extend it with a 3D interface and make something like opensource darkbasic ... and it would fit perfectly to your opensource console, people would actually buy the console because they could easily create their own games with it, not just play the existing ones ...

    but nooooo even when writing this thing, you still want to reinvent the wheel ... stack, list, queue, vector are basic datastructures implemented 1000 times before in 1000 different languages and dialects, tested and 100% bug free in various libraries, code available on the internet in 100 books ... only thing still missing is geek toiletpaper with stack implementation printed on it ...

    but nooo you want to implement your own ... if you want to know how they work, just read a book, take an university course (most universities have datastructures and algorithms course in their curriculum), but do not implement it for the 1001th time ... 

    you are wasting your time doing someting when there are more important things to concentrate on ...

    look at the bigger picture, list all features you need, how long it will take you to implement them and why do you need them ... and i'm talking some structured approach, look at the console and list all things you need to do, not just the front panel ... then it will be painfully obvious what you need to do ....

    i am afraid to ask, but what kind of hardware do you plan on using and are you sure you could get that hardware in the quantities you need ? 

     

    while typing this i just realised something ... you're a kid aren't you ... i just had a flashback, some 20 years ago when we wanted to build the best computer with best features from commodore and spectrum ... it was the same thing ... focusing on small details, going to the design of the basic intepreter before we had complete hardware specs ... wanted to do everything from scratch (because only then will you be sure it is done properly) ...

    man ....

    thanks ... 

    those are some nice memories ...

    for a kid, that stack implementation is not bad at all ... just keep it up, youll get somewhere in life ...

    @zzo38 said:

    in Super Smash Bros Melee you can disable pause, in which case you can't pause it.
     

    the funniest thing i read in a long time




  • On a small sidenote, here's an actual open source gaming system which should soon be released: http://openpandora.org/

    Seems a bit more appealing, at least to me.



  • @Nelle said:

    and why in gods name Forth ? why not whitspace interpreter ? or brainfuck ?

    at least then you could sell them to masochists.

    that would be kinda cool, to go to the sex shop and see a computer console with brainfuck interpreter next to the lether outfits and whips and dildos ...

    think hard core man ...

    You need to check out [url=http://www.google.com/search?client=safari&rls=en-us&q=teledildonics&ie=UTF-8&oe=UTF-8]Teledildonics[/url] and you would see how far behind the times you actually are .. lol



  • @OzPeter said:

    You need to check out Teledildonics and you would see how far behind the times you actually are .. lol
     

    OMG 1ee7 toyz 4 haXX0rz and haXX0r b1tchezz... lool ...

     



  • @OzPeter said:

    @Nelle said:
    and why in gods name Forth ? why not whitspace interpreter ? or brainfuck ?

    at least then you could sell them to masochists.

    that would be kinda cool, to go to the sex shop and see a computer console with brainfuck interpreter next to the lether outfits and whips and dildos ...

    think hard core man ...

    You need to check out Teledildonics and you would see how far behind the times you actually are .. lol

     

     Wow... one of the first few links on that Google search says "The Ins and Outs of Teledildonics"... I hope this was intentional



  • Some of the circuit diagrams are available at: [url]http://zzo38computer.cjb.net/powerxy/hardware/[/url] but, how do you convert WMF to SVG? Can you please tell me how, so that I can make it SVG instead of WMF if possible? Also, I set a wiki site: [url]http://powerxy.wiki-site.com/index.php/Main_Page[/url]



  • @zzo38 said:

    how do you convert WMF to SVG?
     

    Is it really that hard to google for "wmf to svg conversion"?

    Seems like there's a lot of options.

     



  • @ammoQ said:

    @zzo38 said:

    how do you convert WMF to SVG?
     

    Is it really that hard to google for "wmf to svg conversion"?

    Seems like there's a lot of options.

     

    AAAAAAAAAAAAA!!!!!!!! Whatever I do, it is all wrong! I tried many things, and nothing works! It all generates messy pictures! Some without text, some with invalid characters (even after removing the invalid characters, everything on the screen is all wrong), and some that don't actually generate SVG at all.



  •  Well, the problem seems to be that you're using an obselete program (CircuitMaker 2000) to export to a format (WMF) that didn't even have a public specification until 2006. Out of all the programs I've tried, two of them were able to correctly display your WMF, but sadly they were not programs that could convert it.


Log in to reply