Jump to content

Search the Community

Showing results for tags 'acme'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Commander X16 Forums
    • Introductions
    • X16 Discussion Lounge
    • X16 Help & Support Lounge
    • Off-topic Lounge

Categories

  • Official Software
  • Official Docs
  • Community Downloads
    • Games
    • Productivity Apps
    • Graphics Apps
    • Audio Apps
    • Demos
    • Networking Apps
    • Dev Tools
    • Tutorial Apps
    • Misc Apps

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 4 results

  1. alpha xForth Compiler View File NOTE: v0.1.4 seems to have fixed or reduced the severity of the corrupted dictionary in v1.3. Known Bugs: .S may give spurious results. DOES> is broken, do not attempt to use it. ________________________________________________________________ I just uploaded this to see if it runs in the try it now box. It appears to run fine, including the words that operate programmatically based on the width of the display. With some work with an effective in system Monitor program, it would be possible to save a copy of xForth including words you have defined on the console, but for practical purposes, this still requires a SAVE word to be able to save an image of the file after extending, and an INCLUDE word to load a script from a .SEQ file. Once those are written, I will be able to test to see how close to American National Standards Forth (ANS Forth) compliance this system actually comes. While it runs, it is not fully exercised, so I would be very surprised if there were not bugs. "Alpha" in the title means that there ARE bugs, though I fixed two substantial ones since the last release. Bug reports & suggested bug fixes both accepted, the first dutifully and the second gleefully. About upper and lower case: there is NO ASCII CONVERSION in this system. ANS Forth requires that ANS standard words be recognized in upper case, and its up to the individual Forth what they do about lower case. Most modern Forths are not case sensitive. This one is. So if you are in Graphics mode, do EVERYTHING in upper case. If you switch to Upper/Lower case mode, do EVERYTHING in lower case. If you enter the command WORDS to see all of the words in the dictionary, you will note some that look like /FORTH/ which is what I did when eForth had lower case words that were "platform" words that the standard Forth word in upper case was built upon. You will also see /DO/ /?DO/ and /LOOP/ as the "platform" words that DO ?DO and LOOP are built upon. No conversion also means the the line comment word \ is entered and shown as the English Pound Sterling, aka GBP, sign, _ is backarrow, and ^ is up arrow. On the command line, any character from $00 to space is treated as whitespace, as is any character from $80 to Non-Break-Space ($A0). For some brief usage examples and pointer to more about the Forth programming language, see the discussion forum posts attached to this upload. Submitter BruceMcF Submitted 08/28/20 Category Dev Tools  
  2. Version 0.1.6

    11 downloads

    NOTE: v0.1.4 seems to have fixed or reduced the severity of the corrupted dictionary in v1.3. Known Bugs: .S may give spurious results. DOES> is broken, do not attempt to use it. ________________________________________________________________ I just uploaded this to see if it runs in the try it now box. It appears to run fine, including the words that operate programmatically based on the width of the display. With some work with an effective in system Monitor program, it would be possible to save a copy of xForth including words you have defined on the console, but for practical purposes, this still requires a SAVE word to be able to save an image of the file after extending, and an INCLUDE word to load a script from a .SEQ file. Once those are written, I will be able to test to see how close to American National Standards Forth (ANS Forth) compliance this system actually comes. While it runs, it is not fully exercised, so I would be very surprised if there were not bugs. "Alpha" in the title means that there ARE bugs, though I fixed two substantial ones since the last release. Bug reports & suggested bug fixes both accepted, the first dutifully and the second gleefully. About upper and lower case: there is NO ASCII CONVERSION in this system. ANS Forth requires that ANS standard words be recognized in upper case, and its up to the individual Forth what they do about lower case. Most modern Forths are not case sensitive. This one is. So if you are in Graphics mode, do EVERYTHING in upper case. If you switch to Upper/Lower case mode, do EVERYTHING in lower case. If you enter the command WORDS to see all of the words in the dictionary, you will note some that look like /FORTH/ which is what I did when eForth had lower case words that were "platform" words that the standard Forth word in upper case was built upon. You will also see /DO/ /?DO/ and /LOOP/ as the "platform" words that DO ?DO and LOOP are built upon. No conversion also means the the line comment word \ is entered and shown as the English Pound Sterling, aka GBP, sign, _ is backarrow, and ^ is up arrow. On the command line, any character from $00 to space is treated as whitespace, as is any character from $80 to Non-Break-Space ($A0). For some brief usage examples and pointer to more about the Forth programming language, see the discussion forum posts attached to this upload.
  3. File Loader Tutorial View File Introduction Here is a little demo of how to dynamically load files in RAM bank in assembly. It's very simple to do but I think that it can be helpful for someone who don't know how to do this right away. In fact I personally would love to see more of this kind of programs in the download section How this loader works ? First thing to do is to tell the Kernal that we want to use a logical file. For this we need to use the SETLFS subroutine. From the "C64 Programmer Reference Guide" : Since we want to load from the disk (or filesystem) we'll need to use the device number 8. The logical file is not important so we use the file 0. Also, as we want to relocate the program into a bank at $A000, we'll set the Y register to #0 to activate secondary address mode. Next step is telling the Kernal which file we want to load. For this we'll use the SETNAME subroutine. From the "C64 Programmer Reference Guide" : For this we'll need to store our file names somewhere in our program so we write at the bottom of our file the names as a string of petscii characters. We then prepare our registers with the size of the filename to load, and then the address. Our final step to load a file is obviously the LOAD subroutine. From the "C64 Programmer Reference Guide" : As the Reference guide said, we want to load a file so we set our A register to 0 and since we want to load to banked RAM ($A000) we enter the address in our X and Y registers. One last thing that we need to do just after each of our LOAD calls, is to verify that our file has been successfully loaded. For this, we'll need to use the READST subroutine. From the "C64 Programmer Reference Guide" : As usual, following the Reference guide, all we need to do is call this subroutine just after our LOAD call, and check the content of the Accumulator. If zero, the load was successful. And that's all ! You can chain file loading as much as you need, and even you just need to call SETLFS once at the start of the chain. Note that you'll need to switch the bank between file loads to prevent overwriting previously added program. And since Bank 0 is also reserved you'll need to first switch to bank 1 and start from here. At the end you can also load a file in place of the loader, just avoid overwriting memory where the code is currently being executed. You can for example leave this kind of code in your first bank and at last run it to load a program from $0800 to $9EFF. Kernal Subroutines full documentation : https://www.pagetable.com/c64ref/kernal/ Post Scriptum If you have any suggestions for the code or even want to change things in this description, don't hesitate to tell me ! Submitter VincentF Submitted 07/19/20 Category Tutorial Apps  
  4. Version 1.0.0

    25 downloads

    Introduction Here is a little demo of how to dynamically load files in RAM bank in assembly. It's very simple to do but I think that it can be helpful for someone who don't know how to do this right away. In fact I personally would love to see more of this kind of programs in the download section How this loader works ? First thing to do is to tell the Kernal that we want to use a logical file. For this we need to use the SETLFS subroutine. From the "C64 Programmer Reference Guide" : Since we want to load from the disk (or filesystem) we'll need to use the device number 8. The logical file is not important so we use the file 0. Also, as we want to relocate the program into a bank at $A000, we'll set the Y register to #0 to activate secondary address mode. Next step is telling the Kernal which file we want to load. For this we'll use the SETNAME subroutine. From the "C64 Programmer Reference Guide" : For this we'll need to store our file names somewhere in our program so we write at the bottom of our file the names as a string of petscii characters. We then prepare our registers with the size of the filename to load, and then the address. Our final step to load a file is obviously the LOAD subroutine. From the "C64 Programmer Reference Guide" : As the Reference guide said, we want to load a file so we set our A register to 0 and since we want to load to banked RAM ($A000) we enter the address in our X and Y registers. One last thing that we need to do just after each of our LOAD calls, is to verify that our file has been successfully loaded. For this, we'll need to use the READST subroutine. From the "C64 Programmer Reference Guide" : As usual, following the Reference guide, all we need to do is call this subroutine just after our LOAD call, and check the content of the Accumulator. If zero, the load was successful. And that's all ! You can chain file loading as much as you need, and even you just need to call SETLFS once at the start of the chain. Note that you'll need to switch the bank between file loads to prevent overwriting previously added program. And since Bank 0 is also reserved you'll need to first switch to bank 1 and start from here. At the end you can also load a file in place of the loader, just avoid overwriting memory where the code is currently being executed. You can for example leave this kind of code in your first bank and at last run it to load a program from $0800 to $9EFF. Kernal Subroutines full documentation : https://www.pagetable.com/c64ref/kernal/ Post Scriptum If you have any suggestions for the code or even want to change things in this description, don't hesitate to tell me !
×
×
  • Create New...

Important Information

Please review our Terms of Use