Hallo Besucher, der Thread wurde 3,3k mal aufgerufen und enthält 8 Antworten

letzter Beitrag von adtbm am

Hi65: a high-level Commodore 65 emulator

  • During my testing of BASIC10 with the Xemu emulator I was curious about the Hi65, a so-called "high-level emulator" für the C65.


    You can find the site here: Hi65: a high-level Commodore 65 emulator


    The aim of the Hi65 is to emulate the BASIC10 commands of the C65 on a "high-level", means there is no emulation of the C65 hardware, only a emulation of the BASIC10.


    I try to run some programs from the website and I wrote a little testprogram of my own:


    Code
    1. 10 rem testprogram
    2. 20 scnclr
    3. 30 locate 4,5
    4. 40 print " hello forum64! "
    5. 50 end


    It runs perfect with Hi65.


    The Xemu emulator returns a "?UNIMPLEMENTED COMMAND ERROR IN 30" because the "LOCATE" command isn't implemented in the BASIC10.


    Of course the Hi65 is no comparison to the Mega65, who try to emulated the complete hardware of the C65.


    But for testing some BASIC10 commands who don't work a the C65 it is a nice piece of software.

  • I see the problem here that "Hi65" called "high-level Commodore 65 emulator" is kinda misleading. Xemu (or Mega65 or even a real C65 if you are rich enough to buy) "should" react as unimplemented command, if that command is not implemented. That is Hi65 does not emulate in any way any existing C65, maybe just something which "should be" BASIC10 on C65 if it were ever developed production ready. But here is the problem, that it's not true. And some can't know what it would be exactly, maybe other commands, or with different behaviour than Hi65 author imagine to implement something which does not exist. At the other hand, some may expect to write a BASIC program with Hi65, and than it's kinda dangerous to try on a "real thing" (or close to it ...) and find it does not work at all, and the headache comes ... So basically, you may create programs does not run on anything at all, in fact Hi65 should refer its BASIC implementation maybe BASIC11 ;-P Or whatever.


    I think, in the long term, it would be fantastic to find someone who would develop existing BASIC10 (not Hi65, the "real BASIC ROM part") further. Yes, that's kind of similar situation as hi65 (no real C65 exists with that BASIC) but at least more mature to be able to use that ROM than in Mega65, Xemu, or maybe hmmm even on a real C65 with some ROM exchange, if possible (I have no idea about this, never had a real C65 of course!).


    But do not get me wrong, surely, Hi65 is a nice project and a nice software, and can help to get the feeling how it would be, in an alternative time line where C65 is finished and released with all the commands works :)


    Other thing: maybe it's useful to check if you use the latest existing ROM image, since there are several different ones for different C65 units with different maturity and status of the ROMs ... In fact, it would be interesting to know (at least I have no idea) who was involved in developing BASIC10, and try to reach him if he has some unknown/not-released version. But I guess it can be also a license/copyright/whatever problem, or who knows ...

  • I see the problem here that "Hi65" called "high-level Commodore 65 emulator" is kinda misleading. Xemu (or Mega65 or even a real C65 if you are rich enough to buy) "should" react as unimplemented command, if that command is not implemented. That is Hi65 does not emulate in any way any existing C65, maybe just something which "should be" BASIC10 on C65 if it were ever developed production ready. But here is the problem, that it's not true. And some can't know what it would be exactly, maybe other commands, or with different behaviour than Hi65 author imagine to implement something which does not exist. At the other hand, some may expect to write a BASIC program with Hi65, and than it's kinda dangerous to try on a "real thing" (or close to it ...) and find it does not work at all, and the headache comes ... So basically, you may create programs does not run on anything at all, in fact Hi65 should refer its BASIC implementation maybe BASIC11 ;-P Or whatever.

    It's true, that noone knows how Commodore had implemented the "unfinished" BASIC 10 commands, if they had released the C65.


    But the commands are documented in the "C64DX SYSTEM SPECIFICATION" (from Commodore) and in the Mega65 manual. So one can read about what the commands should do (with recognized arguments, etc.) if they there implemented.


    E.g. the LOCATE command set the text cursor to the x- and y-coordinate. Maybe there could be some discussion about HOW the fuction should be implemented, but not about WHAT the result of these function is.


    The BASIC 10 of the real existing C65s is very unfinished and after reading the Mega65 manual with all these BASIC 10 commands it was a big disappointment for me to see that many commands are not usable. That's not the fault from the Mega65 team, it's the problem with the existing unfinished C65 ROMs.


    But one of my hope of the Mega65 was to get a "finished" C65 with all the BASIC 10 commands that Commodore didn't finished.


    Sure, it was a false expectation of me, but this BASIC 10 with all his unfinished commands is a great disappointment.

  • I'm a bit sceptic about specifications not implemented yet :) Good example of Commodore LCD, where the preliminary spec is not even close to the reality what the dev units implemented then. Sure, it's more about a hardware in that case than software, not the best example. But anyway. That's true, an unfinished BASIC interpreter is confusing in a product, what Mega65 is/will be. So really, there should be at least an extra version on the long term which resolves these issues. This is for sure, my opinion only :)

  • Agree, a functional Basic version would be nice and does not lead to frustration. I guess there are some trying/starting with Basic.

    A list of not working Basic commands would be helpful to fix them. F.e. PEEK doesn't work either. Some might be pretty obvious what they should do, like LOCATE.

    Does PEEK not function in Hi65 or does it not function in Xemu?

    If you talk about Hi65, then remember that Hi65 is NOT a C65 emulator, it is a BASIC 10 emulator.

  • Agree, a functional Basic version would be nice and does not lead to frustration. I guess there are some trying/starting with Basic.

    A list of not working Basic commands would be helpful to fix them. F.e. PEEK doesn't work either. Some might be pretty obvious what they should do, like LOCATE.

    You should be careful here. First, there are many ROM versions from "C65 ROM". Just tested, PEEK behaves differently in eg V911001 and V910111. The second: the actual selected BANK can cause difference what BANK is meant to be PEEK'ed at that address, or so ... This second issue also can mean, that no need to fix, maybe that's the expected behaviour in case of some BANK assumed? Also make sure, if you use the last known ROM version, eg - I guess - what version is suggested on MEGA65's github page README as well. There can be situations something does not work, when it turns out it's fixed in later ROMs by Commodore already. Surely, it still left many things wrong maybe ... even by the latest known version ...

  • The last -freely available- KERNEL version is 911001.

    And LGB-Z is absolutely correct, the PEEK (and POKE) commands work differently on a c65 you have to ensure, that you're in the right Bank to use it correctly.

    Zaadii made a nice Video, giving more background information.

    So, it's true, that certain commands are not implemented in the last KERNEL version, but BASIC 10 is still

    fully useable. for some commands you just need to work around.