Jump to content


Popular Content

Showing content with the highest reputation on 04/07/21 in all areas

  1. 2 points
    What @Elektron72 said is correct. Here's a short tutorial for using SYS in BASIC 2.0: The BASIC interpreter will first push the existing contents of the registers onto the stack, then load the A register with the value stored in location 780 ($030C), X with the value stored in location 781 ($030D), Y with the value stored in location 782 ($030E), and the status register with the value stored in location 783 ($030F). Then it will JSR to the address provided as the argument to the SYS command itself. When (or if) the routine executes an RTS to return to BASIC, the reverse happens. The contents of A are stored in 780, etc. Finally, it will pull the previous register contents from before the SYS call back into the registers, and resume BASIC execution at the next instruction.
  2. 2 points
    Don't bother with a PR. We won't update until R39 is released officially.
  3. 2 points
    I am a bit late, and I should have posted this on april the 1st, but..... What is this "Desktop" that you are speaking of ;)???
  4. 1 point
    file based assembler View File Experimental file-based assembler. Work in progress. read source files (up to 62 Kb) directly from disk (sdcard in the emulator) write output directly as PRG file to disk (sdcard in the emulator) can assemble large programs to any location in memory set program counter with "* = $9000" numbers in decimal 12345, hex $abcd, binary %1010011 symbolic labels can use '<value' and '>value' to get the lsb and msb of a value respectively define data with .byte 1,2,3,4, .word $a004,$ffff and .str "hello!" can switch to (the rom-based) x16edit to avoid having to swap-load programs all the time disk device number is selectable Source code is here https://github.com/irmen/cx16assem Here's a small example file HELLO.ASM that you can try: * = $8000 CHROUT = $FFD2 START LDY #$00 LOOP: LDA MESSAGE,Y BEQ EXIT JSR CHROUT INY BNE LOOP EXIT: RTS MESSAGE: .STR "HELLO, WORLD!" .BYTE 13, 0 Submitter desertfish Submitted 02/26/21 Category Productivity Apps  
  5. 1 point
    Issue logged. https://github.com/commanderx16/x16-rom/issues/199
  6. 1 point
    My take on this top 5: (don't read down if you haven't seen the video yet and want to avoid spoilers on what's in the top5) ChaseVault. Well, what can I say? Pacman. This version is very well made, i'm amazed you managed to pull that off that early for the platform CrazyBoulders I find amazing as well because it's recreated a favorite 8 bit game of my youth (Boulderdash) entirely in Basic and it looks great and plays quite well, though personally I stick with either the original on an emulator or my own remake of that in Python. Maze is a fun little game because of its simplicity and I think the puzzle mechanic it is built around is quite fun. Easy to hop in and out and play a few puzzles in a few minutes. I like that sometimes. Invaderz looks very nice but personally I'm not a fan of space invaders, so haven't really played this. Brixx , again, what can I say, Arkanoid. However I've played many of these breakout type games over the years, and I can't really enjoy a basic variant anymore. My all time favorite I think remains TRAZ on the C64 due to its many extended features (multi paddles, horiz/vertical, many types of bricks and enemies...) Hats off to all authors! Keep m coming!
  7. 1 point
    Lorin Said: That sounds fun. I'll extend my dumper. Use [ code ] and [ / code ] (sans spaces). Thank you for that, by the way.
  8. 1 point
    Doesn’t the system API give the ability to intercept these various hot keys and consume them in the application instead? In the case of ^X obviously this isn’t necessary for the emulator, but it would be nice if it could do this for the printscreen/ pause-Brk keys as those have X16 functionality planned if the custom key caps are any indication... Right now, both Linux and Windows use PrintScreen as a screenshot hot key, but the X16 seems geared to use that as 40/80 COL mode switch... I’d like it if the emu could override the screenshot function and consume the keystroke so the X16 can use that key as it appears on the X16 kbd.
  9. 1 point
    Not exactly. That algorithm actually writes to the banked memory and then checks to see if that value appears in bank zero. If so, then the bank does not exist and loop exits. I've annotated what I think the code is doing here: stz ram_bank ; Switch to bank 0 ldx $a000 ; Create 'magic X' value by adding inx ; 1 to whatever is @ bank 0 offset 0 lda #1 ; Set A to begin at bank 1 : sta ram_bank ; Switch to bank specified by A ldy $a000 ; Save value at bank A offset 0 stx $a000 ; Write 'magic X' value to offset 0 stz ram_bank ; Switch to bank 0 cpx $a000 ; Check if 'magic X' is mysteriously here sta ram_bank ; Switch back to bank A sty $a000 ; Restore original value beq :+ ; If 'magic X' was found, we're done. asl ; Double # of banks considered I'm not quite sure how to get the forum software to format that with a monospace font, but I think you can get the general idea.
  10. 1 point
    A lot of this is a good approach to a full RAM test. Sent from my iPhone using Tapatalk
  11. 1 point
    I guess in this case a custom version of the routine is unlikely so using the ROM vector would be safe. The real hardware does not mirror the ram. So if you attempted to read or write banks that don’t exist what you will get is garbage. Sent from my iPhone using Tapatalk
  12. 1 point
    Very fun! I love the sound effects. Reminds me of playing Space Invaders on my Atari 2600 as a kid.
  13. 1 point

    Version R39 Preview


    X16 Edit is a text editor for the Commander X16 platform. Design goals: Use plain text files Store text buffer in banked RAM (512KB to 2 MB) Handle large texts efficiently Simple modeless user interface inspired by GNU Nano Implement basic editing functions well - refrain from making the program too feature-rich Support both ISO and PETSCII modes Tested with emulator version r38. Run with the following command: x16emu -sdcard sdcard.img -prg X16EDIT-x.x.x.PRG -run where x.x.x is the program version. You can also run the program with the "Try it now" button. There is, however, no attached disk in the online emulator, and consequently you cannot save or open files. Also, some of the Ctrl+key sequences are not working in the online emulator. To fully test the program you still need to download and run it locally. Please read the attached file romnotes.pdf if you want to try the ROM version. Source files available at https://github.com/stefan-b-jakobsson/x16-edit Released under GNU General Public License v 3 or later. romnotes.pdf manual.pdf
  14. 1 point
    Why we’re renaming the X16: Perifractic, X16 Visual Designer
  15. 1 point

    Version 1.0.0


    Just a fun small intro put together to play around with the X16 emulator. I'm looking forward to the next iteration of the hardware and emulation, especially around the audio. Thanks for looking!
  16. 1 point
    Just looking at my /git folder, I see these projects started. x16-bankmaster - a banked-data hex editor x16-cluster - a "multitasking" (green) script "cluster" framework proof-of-concept. x16-help - a banked "help menu" program for BASIC commands. x16-lox - a (failed) attempt to implement a Lox interpreter with cc65 for the X16. (https://craftinginterpreters.com/the-lox-language.html) x16-sheep - my biochem/AI simulation game. x16-trader - my Traveller Space Trader game. x16-vm1 - my VM proof-of-concept with ideas stolen from http://c-jump.com/CIS77/CPU/IsaDesign/lecture.html And these are actually done: x16-banner - my "PETSCII large font" printer x16-furball-space-program - currently just a Lunar Lander, but with delusions of grandeur. x16-hex - assembly that converts one digit to hexadecimal (with thanks to Woz). x16-memorymap - a program that calculates and spits out a simple memory map. x16-panel - a program that manages drawn PETSCII "panels" on the screen. x16-rogue-forest - my rogue-lite that uses VERA layers for Fog of War effects. A couple of these might form a syzygy, such as building the script language on the VM as a kind of p-code.
  17. 1 point

    Version 1.0.0


    Written in "C", in 2014 for the Commodore 64 and ported to CX16 in 2020. I wanted to know how hard it would be to make a chess AI. I am not a great chess player, nor did I research chess engines, so I made things up as I went. The end result is this chess which by any standards of chess, is not a good AI opponent. However, it's there and it's playable. Use and keys The user controls an on-screen cursor. The cursor changes color to indicate a state. The colors for selection are: Green - the piece can be selected Red - The piece cannot be selected as it doesn't have valid moves Purple - Empty tile or piece on the other side Blue - The currently selected piece Cyan - A valid destination for the currently selected piece To move the cursor, use the cursor keys. To select a piece, press the RETURN key while the piece is selected. To deselect the piece, press RETURN on the same piece again, or press ESC. To bring up the menu, press the M key, or the ESC key when no piece is selected. Pressing ESC in a menu backs out of the menu, to the previous menu or back to the game. Press RETURN to select a menu item and use the up and down cursor keys to change the selection. While a side is under human control, there are a few more options. Press B to toggle on/off a state showing on every tile how many of both black and white's pieces can attack that tile. Pressing A will toggle a highlight of all of the pieces on the opposing side that attack the selected tile. Pressing D will toggle a highlight of all the pieces on the side currently playing's side that can defend the selected tile. All three of these options basically give a visual representation of the Game Database. The colors are: For attackers Cyan and for defenders Red. Lastly, the game has an Undo/Redo stack that tracks the last 254 moves. Pressing U will undo the last move and R will redo the last move. In an AI/Human game, the undo will undo the last AI and human player move, so the human player can make a different move.
  • Create New...

Important Information

Please review our Terms of Use