BASIC 10 chapter of the MEGA65 manual finished today

Es gibt 124 Antworten in diesem Thema, welches 42.701 mal aufgerufen wurde. Der letzte Beitrag (16. Februar 2022 um 21:21) ist von adtbm.

  • if you worked with 910xxx until now, we should meybe test the other not implemented commands you listed here, or have you already done that?


    Bitte melde dich an, um diesen Link zu sehen.
    10.06.2023 - DoReCo Bitte melde dich an, um diesen Link zu sehen.
    14.09.2023 bis 17.09.2023 - DoReCo-Party 2023

  • if you worked with 910xxx until now, we should meybe test the other not implemented commands you listed here, or have you already done that?

    I have the same thoughts. It's on my todo list to test them with the "newer" ROM.

    The "problem" was, that I get the C65 ROMs for the Xemu emulator with the "make roms" command (Bitte melde dich an, um diesen Link zu sehen.). It gets the "910111-390488-01.bin":

    c65-system.rom

    Bitte melde dich an, um diesen Link zu sehen.

    131072

    And this was the C65 ROM I used for my tests.

    The question is, is the "911001.bin" C65 ROM I use now, the latest available C65 ROM?

    Edit: I ask the question in an extra thread: Bitte melde dich an, um diesen Link zu sehen.

  • Maybe we should mention in the book which ROM-revision is described.

    The book describes currently the BASIC 10 version, that was planned for the release of the C65, based on available documents.

    Hopefully someone will provide ROM patches, to finalize the incomplete known ROM versions.

  • The question is, is the "911001.bin" C65 ROM I use now, the latest available C65 ROM?

    We use for the MEGA65 the latest available, official ROM 911001 (01.october.1991).

    On Zimmers you can find a "patched" version from the 8th of october (911008), i am not sure, what they've patched, i havn't found a difference, tp the 911001.

    We know, that Fred Bowen used in his C65 a later version from Dezember (9112xx) but we have not been able to get or find this version anywhere.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Paul said, that the last available ROM is available as sourcecode.

    Bitte melde dich an, um diesen Link zu sehen. <- here you can find all MEGA65 related files, games, etc.

    Bitte melde dich an, um diesen Link zu sehen. <- MEGA65 main Homepage. links to all important MEGA65 sites (links on top of the page to Files, Forum, GitHub, Manual,etc.)

    Bitte melde dich an, um diesen Link zu sehen. <-Pauls Blog - constant updates about current tasks, project status, etc.

    Bitte melde dich an, um diesen Link zu sehen.,Bitte melde dich an, um diesen Link zu sehen. <- All Open-Source information regarding MEGA65. Found Bugs ? create an issue there please!

    Bitte melde dich an, um diesen Link zu sehen. <- Join for live chat support and more --- The Future is 8-bit !!!

  • I want to give some feedback to the great manual.

    Manual Version: MEGA-Book-200117.pdf

    xemu C65, ROM: BASIC 10.0 V0.9B.911001

    I was playing around with the token. The internal monitor is great to inspect BASIC lines in Memory.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Example (explore the dma keyword):

    There are some Keywords missing in the manual.

    CURSOR x,y

    Place the text cursor at x,y

    x = 0..39 / 0..79 on the 40 / 80 character screen

    y= 0..24

    Example: cursor 8,1:print "** test **"

    Some BASIC dialects use LOCATE to place the text cursor, so the man-page for LOCATE should include a reference to the CURSOR command.


    Some Keywords token are different as printed in the manual.

    CHANGE Token:$FE $2C

    COPY Token:$F4

    HIGHLIGHT Token:$FE $3D

    DMA Token:$FE $1F


    DIRECTORY

    DIR, DIRECTORY

    The DIRECTORY keyword can be typed as DIR or DIRECTORY

    DIRECTORY is build out of two token, DIR + ECTORY

    DIR $ee

    DIRECTORY $ee $fe $29

    Both typing variants should be explained in the manual.


    LINE

    (1) LINE xbeg,ybeg,xend,yend

    (2) LINE x,y

    LINE can be used to draw a line (1) or a single pixel (2)


    Graphics Examples:

    I tried some of the examples with xemu and they didn't work for me.

    They maybe are ok with older ROM versions, I don't know.

    The color palette seems to be set to white for every pen.

    To make things work, the color palette has to be initialized (with random values in this example).

    This program works for me with xemu, it can be divided into 3 parts.

    It can be used as sample program for Graphic commands.

    Just part (2) has to be changed for the different graphic commands.


    There are some token in the ROM which are not explained in the manual.

    Some of them - but not all - are not implemented.

  • I want to give some feedback to the great manual.

    Manual Version: MEGA-Book-200117.pdf

    xemu C65, ROM: BASIC 10.0 V0.9B.911001

    Thank you very much for your feedback, which is appreciated.

    I'll update the BASIC-10 chapter and use your hints.

    The description remains however preliminary as long as the OPEN ROM version is not finished and the C65 version is not patched.

    So I'll add the description of some currently uninplemented commands, when they are available.

  • Using the latest available C65 ROM (911001.bin) the color codes in BASIC 10 are from 0 to 15 again (16 returns an error).

    So it depends on the ROM version, whether the color codes are from 0 to 15 or from 1 to 16. :S

  • In this short man-text "cursor.man" (from the sources from Commodore) is described, that there are two more possible parameters at the CURSOR command: ON | OFF and <style>:

  • On Zimmers you can find a "patched" version from the 8th of october (911008), i am not sure, what they've patched, i havn't found a difference, tp the 911001.

    If you load the original ROM in the MESS emulator, then it comes with a small Basic demo program bundled, which runs automatically every time (and you have to press Run/Stop to break it and get to the OS). In the patched version, however, it has been changed to enter the Monitor instead (so you have to type an X command to exit the Monitor and get to the OS).

    Interestingly enough, in the XEMU emulator nothing of the above happens (it just boots up normally like the other ROM's).

    (No idea where and how it takes the built-in demo program from, but after having been started, it even tries to load some more additional programs from a Fred Bowen demo disk, which fails, of course, as the disk is not present. It's also interesting that the tried-to-be-loaded additional program list always depends on the actual memory expansion detected, thus setting either to 128K or 640K or more in the emulator makes to try a different program list to start with. Also no idea why the whole action is completely missing if started in XEMU.)

  • We have seen that sometimes it starts and sometimes it doesn't', as we have continued development. It would be super helpful for someone to eamine in the ROM how it decides whether or not to run the demo program.

    LG

    Paul

  • We use for the MEGA65 the latest available, official ROM 911001 (01.october.1991).

    On Zimmers you can find a "patched" version from the 8th of october (911008), i am not sure, what they've patched, i havn't found a difference, tp the 911001.

    In the "patched" version of the ROM the build in demo programs (in the area from $4000 to $6930) are removed. All other memory areas are unchanged.

  • In the "patched" version of the ROM the build in demo programs (in the area from $4000 to $6930) are removed. All other memory areas are unchanged.

    Thanks for checking this !!!

    Bitte melde dich an, um diesen Link zu sehen. <- here you can find all MEGA65 related files, games, etc.

    Bitte melde dich an, um diesen Link zu sehen. <- MEGA65 main Homepage. links to all important MEGA65 sites (links on top of the page to Files, Forum, GitHub, Manual,etc.)

    Bitte melde dich an, um diesen Link zu sehen. <-Pauls Blog - constant updates about current tasks, project status, etc.

    Bitte melde dich an, um diesen Link zu sehen.,Bitte melde dich an, um diesen Link zu sehen. <- All Open-Source information regarding MEGA65. Found Bugs ? create an issue there please!

    Bitte melde dich an, um diesen Link zu sehen. <- Join for live chat support and more --- The Future is 8-bit !!!

  • Maybe - at least as a kind of first aid - it would be enough to fill up the first few bytes with zeroes starting at $4000 for changing the built-in program to an empty one (since it is in the patched version has not been completely eliminated, but rather a "0 MONITOR" Basic one-liner is there).

    As I started listing out the Basic demo program (which seems to be written by Fred Bowen), I spotted another strange thing.

    It uses the FRE(2) function to determine whether a memory expansion is present (that gives back the number of the extra banks). While FRE(0) and FRE(1) indicate the free bytes in the first two banks (as available program code and variable memory). But the latter two here only give back about 24K. Does anyone know why?

    Both of them should report 55K at least (or more) as they generally do (since in both banks the used space is starting at $2000, although it can be manually increased a little downwards yet).

    With that 24K displayed, it seems the free space is only counted until the 32K boundary for some reason now.

  • It uses the FRE(2) function to determine whether a memory expansion is present (that gives back the number of the extra banks). While FRE(0) and FRE(1) indicate the free bytes in the first two banks (as available program code and variable memory). But the latter two here only give back about 24K. Does anyone know why?

    It has to be an error in BASIC 10 in the newest ROMs.

    In an older ROM (910429.bin) the FRE commands shows the correct results:

    Bitte melde dich an, um diesen Anhang zu sehen.

  • Maybe try to progressively reduce the amount of free memory by allocating variables on a new rom, and see if the 24K goes down to 0, and then jumps back up to 32K. I am suspecting that FRE() in the newer ROMs might be returning only the bottom 15 bits of the value.

    LG

    Paul.