XY-MINI Final Specification



  • The final specification is now made. It now includes a license allowing you to use/modify/redistribute this document under certain conditions. I would like to see if someone could write a interpreter for it.

    http://zzo38computer.cjb.net/xym/xym_spec_0_8.doc



  •  Interesting. What's the purpose of this? Did you do this for a class, just for fun? It's very tempting to write a VM, but I just don't have the time for that, unfortunately.



  • It seems to have gone away.

    -cw



  • Indeed it has. I think CJB.net is a dynamic DNS service, so chances are it'll be back when the OP is back online. That's high quality hosting for sure.

     (Hint: googlepages.com)



  • @Nandurius said:

    Indeed it has. I think CJB.net is a dynamic DNS service, so chances are it'll be back when the OP is back online. That's high quality hosting for sure.

     (Hint: googlepages.com)

    That is because someone turned off the computer, or because of a power outage, the IP address change, or something like that. It doesn't happen often. I always leave the computer on all the time. Maybe some people (or maybe stupid people) turned off the computer. I will turn it back on tonight, or if I can call those people I can tell them to turn it back on for me. They say they never touch it, but I think they keep moving stuff and it is wrong. Also the button is on the front and I want to put a cover, because the power button and reset button are easy to push. I will fix it today or tomorrow. Maybe I need something to check if computer is not working, if so, turn it back on and update the DNS. Like the ITAPPMON ROBOT, but a better way like checking keyboard lights to see if it works OK, which is a better way than the CD-ROM drive, for sure! Try again a few minutes, if still broke, reset computer and fix dynamic DNS.


  • @zzo38 said:

    That is because someone turned off the computer, or because of a power outage, the IP address change, or something like that. It doesn't happen often. I always leave the computer on all the time. Maybe some people (or maybe stupid people) turned off the computer. I will turn it back on tonight, or if I can call those people I can tell them to turn it back on for me. They say they never touch it, but I think they keep moving stuff and it is wrong. Also the button is on the front and I want to put a cover, because the power button and reset button are easy to push. I will fix it today or tomorrow. Maybe I need something to check if computer is not working, if so, turn it back on and update the DNS. Like the ITAPPMON ROBOT, but a better way like checking keyboard lights to see if it works OK, which is a better way than the CD-ROM drive, for sure! Try again a few minutes, if still broke, reset computer and fix dynamic DNS.

    You can get a shared hosting package with lots of disk space and shell access for something like $7 a month.  It's way easier than what you are proposing. 



  • There was a power outage, but it works now. Now please read the XY-MINI document and make comment of it, please.



  • @zzo38 said:

    There was a power outage, but it works now. Now please read the XY-MINI document and make comment of it, please.

    Well, my first comment would be: Microsoft Word blows for this sort of thing. LaTeX FTW!

    My other comments are:

    • Seriously? I thought this was like a joke or something. But you really want us to read a 25 page technical spec for the fun of it?
    • What exactly is the point of this? Why do you want to emulate an extremely limited 16-bit environment? And why don't you just use some existing VM to emulate a 286 or something?
    • Based upon my limited reading, one thing that jumped out at me was that the only way to read devices is through RECV, which halts execution until something is received. This is stupid for a game, where other things need to be happening whether the user is giving input or not. A much more RISC-friendly solution is to have commands to peek and pop the device buffer. Then it's simply a matter of doing a loop around the peek to emulate the behavior of RECV.
    • Why don't you have a flag for division by 0? Pushing a nonsense value on the stack is all well and good, but it's much cleaner if you set a flag, because only one value needs to be checked, not two. Especially because you don't have an interrupt system.
    • I don't think the PRINT command is particularly well defined. I'm not sure if it's poorly written or poorly thought out, though.



  • @zzo38 said:

    Now please read the XY-MINI document and make comment of it, please.
     

    Sure, as soon as you sign the purchase order, I would be happy to. Invoice terms are Net 30.



  • @MasterPlanSoftware said:

    @zzo38 said:

    Now please read the XY-MINI document and make comment of it, please.
     

    Sure, as soon as you sign the purchase order, I would be happy to. Invoice terms are Net 30.

    What purchase order? I didn't see any purchase order.

    (Also, I made a mistake, it isn't final. The next revision is: http://zzo38computer.cjb.net/xym/xym_spec_0_9.doc)



  • @zzo38 said:

    (Also, I made a mistake, it isn't final. The next revision is: http://zzo38computer.cjb.net/xym/xym_spec_0_9.doc)
     

    So we should read it twice??

     

    I don't think you have that kind of money.



  • I've always been a bit of a geek for a virtual machine...I've built a few for fun, and when I'm teaching someone, I often use one as a learning tool... but I don't think I quite understand what your goal is here.  

    Are you trying to emulate a specific machine (or set of machines)?   It might help if we had a better idea of what your goal here is, but it just sort of seems anachronistic (4- & 16-color modes?).  

    Also the decision to do all-memory-mapping is a bit odd (except I guess the keyboard buffer isn't).  I kind of like 189 general purpose registers (though it's an odd number...), but -- in a real machine -- i certainly don't want to go out to memory on every instruction that uses a register.   But then it also looks like a lot of your instructions are stack based...  You might have a master plan in the works here, but it isn't clear. 

    Oh, and it looks like you are overloading the Data Available Flag.  (FFC1).   You use it if there is data waiting in the keyboard buffer, and you use it if there is a record read in XROM.

    Anyway, enough of that.

    -cw



  • @CodeWhisperer said:

    .....

    Oh, and it looks like you are overloading the Data Available Flag.  (FFC1).   You use it if there is data waiting in the keyboard buffer, and you use it if there is a record read in XROM.

    .....

    The XROM or keyboard buffer are used only if the header tells it to use those. And you can use only one anyways, and only in file loading mode. In device loading mode, the header is ignored and the device (or game cartridge, or internet connection, or whatever it is) that the program is loading from has to provide that function instead (but it can't do keyboard very well like that).



  • ... You can write to the display size?!?



    And you can never have enough general purpose registers :)



  • @Daid said:

    ... You can write to the display size?!?

    And you can never have enough general purpose registers :)
    Yes, you are write the display size. If you do, then the picture will be centered on the screen, the window will be smaller (on a Windows computer), or the picture is zoomed 2x to fill the screen, or something else, etc.



  • XY-MINI new revision, and also a assembler, please.

    I made a next revision, with scrolling and many typing mistakes fixed, and headers are now longer as well. It is: http://zzo38computer.cjb.net/xym/xym_spec_1_0.doc

    Also I made a assembler. Tell me if you think it is good, or if you find a mistake, etc. http://zzo38computer.cjb.net/xym/xymasm.flog I tested it, and check the output file with a hex editor to make sure it does correctly, it seems to do OK.



  • @zzo38 said:

    http://zzo38computer.cjb.net/xym/xymasm.flog
     

    Should I even bother to ask what language that is written in? 

    n/m. I should have known not to..

    http://esolangs.org/wiki/FlogScript



  • @Nandurius said:

    @zzo38 said:

    http://zzo38computer.cjb.net/xym/xymasm.flog
     

    Should I even bother to ask what language that is written in? 

    n/m. I should have known not to..

     

    The more I learn about zzo, the more I think we need more of him. Clearly this is SS's understudy.

    zzo38, please (in a new thread) tell us all about your flogscript, and your other thoughts, ideas and projects.



  • @Nandurius said:

    @zzo38 said:

    http://zzo38computer.cjb.net/xym/xymasm.flog
     

    Should I even bother to ask what language that is written in? 

    n/m. I should have known not to..

    Wow. That makes sed look like downright verbose.


Log in to reply