Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


JimmyDansbo last won the day on March 13

JimmyDansbo had the most liked content!

Community Reputation

162 Excellent


About JimmyDansbo

  • Birthday 08/03/1979

Recent Profile Visitors

365 profile views
  1. It seems to me like you are mixing your variables? Your DATA statement includes numbers, but your READ statement reads them as strings. Code should be: 10 DATA $1000, $FF 20 READ A, D 30 POKE A, D 40 PRINT A,D
  2. Unfortunately not in the manual yet, but DATA$ and DA$ are definately built into the KERNAL as string representations of current date. https://github.com/commanderx16/x16-rom/commit/f01870d7cf11b34c8cc372d5d04b571bf2574d54 Just tested it in the emulator: As you can see, when the DA$ has been set, it will be updated by the kernal.
  3. Nope, v39 will be using $00 and $01 for bank switching and generally be closer to the actual hardware. v38 has always- and is still using $9F60 and $9F61.
  4. I am also in the process of building an 8-bit CPU/computer. The CPU is designed and running in Logisim and I have actually started hardware development although I have already hit a snag in moving my Ben Eater-style clock-module from breadboard to prototype PCB. I hope that you will get the time to play around with the Commander X16 emulator and eventually the hardware. Looking forward to seeing what you come up with
  5. According to latest video from TexElec there will be an MCP7940 RTC, I am guessing you could test your timing against that?
  6. In my opinion, 6502 assembly is one of the easiest languages. There are few opcodes and even fewer registers. When that is said, that does not necessarily make it easy to program in 6502 assembly as you have to do a lot of leg-work your self. x86- and later assembly has more instructions and more registers which means there is more to learn, but it takes away some of the leg-work needed for 6502 assembly like multiplication and division. I have not really tried assembler programming for ARM. In any case you need to know about the supporting chips in order to do anything really useful. On the Commander X16, that means knowing about VERA, the VIA's and so on. On PC, it means knowing about BIOS, RTC, Interrupts and so on. Or, if you are writing assembly targeted at an OS like Linux or Windows, it means knowing about calls to the kernel to get things done.
  7. Yes, it can be done, but I suggest installing a windowing system along with a VNC server and run it through VNC. It is a lot faster than x-forwarding the application it self.
  8. The first game I ever purchased was Planet X3. It was the only game I ever purchased until Attack of the PETSCII Robots which has not arrived yet.
  9. Does this help? https://github.com/commanderx16/x16-docs/blob/master/Commander X16 Programmer's Reference Guide.md#commodore-128-api-compatibility There is also the C128 documentation for the FETCH/INDFET api call https://cx16.dk/c128-kernal-routines/indfet.html
  10. Which game is that? Have I missed it?
  11. ... and here is the c64-wiki article about it: https://www.c64-wiki.com/wiki/SYS
  12. Welcome to the exclusive club of ACME users.
  13. I have been toying with the notion that maybe I could use a kernal function to do the conversion between petscii and screencodes. Unfortunately it seems that the only place the kernal converts from petscii to screencodes is in a function that also prints the character to the screen. My next thought is that I could possible make use of kernal functions in the VTUI library instead of writing directly to VERA. I am fairly sure that if I change the library to use kernal routines, the size will be decreased a fair bit and it would most likely be better at converting between petscii and screencodes. What are your thoughts? Would there be any problems in using kernal routines instead of writing directly to VERA?
  14. @desertfish, I figured it out. I store anything that is returned by the GETIN Kernal function in the buffer, but only if the character is within the allowed range is the length incremented. This means that so long as the user has not used all allowed characters, you will essentially have a zero-terminated string, but if the user uses the full allowed length, there is no zero added to the end of the buffer.
  • Create New...

Important Information

Please review our Terms of Use