Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by mobluse

  1. I think a disadvantage with THEC64 is that the graphics characters on the front of the keys are too low and the 0 is centered. I sold my THEC64 and bought THEVIC20 in stead. THEVIC20 has a better joystick than the original THEC64. Maybe they have improved THEC64 joystick lately.
  2. I think when they added a micro controller to the X16 there was no point of building it using discrete classical components since it was not that easy to explain what the micro controller did. I think the X8 is more the way to go using only FPGA. Then when the FPGA capacity increases one could have an X8 with IEC, PS/2 ports, SNES joystick ports, and external RAM. I already have an Olimex FPGA that runs Apple I and it can also run Donald Knuth's Mix Computer and then also use the external RAM. Also a Raspberry Pi 4 B can hardly emulate X16 now and could not emulate X8 at 15 MHz, which is an advantage since then there is a reason to buy an X8 - "The modern retro computer that the fastest Raspberry Pi can't emulate in real time". Since FPGAs usually have a lot of connections I hope they can squeeze in a serial port or two in the first X8 since they are useful for debugging and more (the serial port only needs to be 3.3 V and holes you could solder pins to). Also X8 is a better name since 65C02 is an 8-bit CPU. A USB PETSCII keyboard is also useful to have with emulators (and I hope it also supports PS/2 with a passive adapter). I guess you would also need to ship the X8 with two USB SNES controllers or say exactly which chipset is supported by the X8 USB ports. USB mice are hopefully standard enough. It is of course slightly difficult to explain the special 65C02 that is strongly connected to the graphics card.
  3. It says "support for ON ... GOTO N1, N2, N3", but does it also support "ON ... GOSUB N1, N2, N3"?
  4. You can paste in data in iAltair from e.g. an email. You might request that the developer includes extra software such as fig-Forth. It is difficult to export data, but you can take screenshots and run them through OCR.
  5. The X16 has a IEC compatible (Commodore) disk drive port. Would it be possible to also send video from this commodore serial bus on the X16? That means you could have an extra screen to the X16.
  6. There is a CP/M computer emulator for iPhone (and probably iPad): iAltair https://apps.apple.com/se/app/ialtair/id291182085 More documentation: https://schorn.ch/ialtair.html It's possible to use this with a Bluetooth keyboard (but it also works with the screen keyboard) and to paste in text from the iPhone's clipboard. One can also save to the built in diskette. BTW The CP/M for V20 and V30, mentioned above, using the 8080 mode is called 22nice.
  7. It might be possible to write a CP/M 8080 emulator for X16, just like there exists one for C64, which I tested some years ago. I tested the following 8080 emulator with CP/M on Raspberry Pi in 2014: https://nanochess.org/emulator.html This source code is rather difficult to understand, but one could write an Intel 8080 emulator from scratch that has the same instructions for peripheral operations and then the rest of the files should work. Not all CP/M software works on 8080 since Zilog Z80 was more common. I have PCs with V20 and V30 CPUs (80186 super set) that can emulate 8080 in hardware and there was also CP/M-80 for PCs that used that 8080 emulation. My Amstrad PC1512 had originally 8086 CPU, but I switched it to V30. I found a tutorial on how to write an 8080 emulator: http://emulator101.com/
  8. When do start measuring the time? Is it from start of program or e.g. from when OXYGENE is shown? It is a bit faster on second run: about 68% of full speed on my computer.
  9. I got it to run on my computer with dual core x86-64 and Windows 10 using: ..\x16emu_win-r38\x16emu.exe -ram 2048 -run -prg STNICCC.PRG Unfortunately my computer is not that fast so it only run in 50% speed. It said the time was 1:39.96, but it was longer in reality.
  10. I have updated the PETSCII: x16emu: 5 SCREEN0 10 ?CHR$($A5);CHR$($A7) VICE x64: 5 ?"{clear}"; 10 ?CHR$(10*16+5);CHR$(10*16+7) There seems to be an error in the X16 ROM for CHR$($A7) because it is not just thinner, but in the wrong end compared to C64.
  11. From the release notes for r38: "changed PETSCII screen codes $65/$67 to PET 1/8th blocks" I don't see any difference between X16 and C64. I tried this code in x16emu: 5 SCREEN0 10 ?CHR$($65);CHR$($67) and this in x64 in VICE 3.4 SDL2: 5 ?"{clear}"; 10 ?CHR$(6*16+5);CHR$(6*16+7) ({clear} is Shift+Home i.e. a reversed heart.) What is the difference between the C64 character set and X16? I think it's good if there are identical characters in C64 that they are different in X16, because there is no point in having identical characters. It is a problem of how to print them since the Style64.org PETSCII font probably only supports C64.
  12. I use GNU Nano as my main editor in Linux and I noticed a disadvantage of Ctrl+U (Uncut) in X16 Edit: Ctrl+U can only paste once in X16 Edit, but several times in Nano. I hope this will change because I often use Ctrl+U several times in Nano and would like to do so in X16 Edit. I believe there is no advantage of emptying the cut-buffer after the first uncut/paste.
  13. I think this is great. Does it handle labels in ON...GOTO and ON...GOSUB? How do you enter the BPP files? since the built in editor requires line numbers.
  14. There are emulators for other computers that run in a terminal e.g. https://atari800.github.io/ and http://rullf2.xs4all.nl/sg/zx81ce.html. The output of x16emu can be sent through a filter program that converts PETSCII to UTF8: https://github.com/mobluse/x16-petscii2utf8 The difficult thing is to get the keys you press (key down and key up events) in the terminal to be sent to x16emu. I once hacked x16emu so that this was possible, but that slowed down the emulator. One would also need to remove the GUI to make it independent of X and SDL.
  15. This bug is also discussed here:
  16. Putting in the better GC of C128 would not help since the bug is also in C128: "I found this bug in all versions of Commodore BASIC, that I investigated, VIC-20, C64, C128, C65, MEGA65." https://c65gs.blogspot.com/2021/03/guest-post-from-bitshifter-fixing.html
  17. Probably Luxor ABC80 from 1978: https://en.wikipedia.org/wiki/ABC_80 Then there was ABC800 from 1981: https://en.wikipedia.org/wiki/ABC_800 And ABC1600 from 1985: https://en.wikipedia.org/wiki/ABC_1600
  18. It would be interesting if someone could make a BASIC v2 program that demonstrates the bug in the garbage collector.
  19. I developed RatBAS2 in order to generate large BASIC v.2 programs from C-like source code: https://github.com/mobluse/ratbas2 RatBAS2 is similar to RatFOR (Rational Fortran). I discovered that RatFOR could be used to generate BASIC since it is similar to Fortran 66 and modern RatFOR has a disabled Fortran 66 mode that I could enable. RatBAS uses only IF...GOTO, but BASIC does have FOR...NEXT loops, ON...GOTO, GOSUB, and ON...GOSUB also. Unfortunately the program that turns a program in BASIC with labels into BASIC with line numbers doesn't handle the ON... constructs. FOR... NEXT is probably faster than using IF...GOTO.
  20. I think VAL() should work for hexadecimal numbers and not only for decimal as it does now. PRINT VAL("$FFFFFFF") should print: 268435455. I believe it would not be too difficult to implement since the code already exists for converting numbers in code. PRINT $FFFFFFF works now, and types: 268435455. Especially now when HEX$() exists in the next prerelease (-39). HEX$() converts without $ as prefix, but I think that's OK since $ could be added easily if one wants. It's also similar to how it works in other BASICs, e.g. GW-BASIC: http://www.antonis.de/qbebooks/gwbasman/hexs.html In GW-BASIC HEX$() also works for negative numbers, e.g. HEX$(-32768) is "8000", but negative numbers doesn't currently work with X16 BASIC HEX$(). I don't think it's necessary to implement VAL() for binary numbers, even though BIN$() exists, but if one did they should probably have % as prefix, e.g. %101. FreePascal uses the same prefixes: https://www.freepascal.org/docs-html/ref/refse6.html
  21. Is it legal to bundle the official rom.bin r39 from the Windows release (when it comes) in the snapcraft version of x16emu? because then the tests of release would work on more platforms that are not officially supported: e.g. for Linux with armhf and i386. https://snapcraft.io/x16emu
  22. "The KERNAL version can be read from location $FF80 in ROM. A value of $FF indicates a custom build. All other values encode the build number. Positive numbers are release versions ($02 = release version 2), two's complement negative numbers are prerelease versions ($FE = $100 - 2 = prerelease version 2)." - https://github.com/commanderx16/x16-docs/blob/master/Commander X16 Programmer's Reference Guide.md
  23. I believe it's only necessary with rom.bin, but you also included basic.bin, dos.bin, and geos.bin. When packaging for Linux according to the Makefile it only includes rom.bin. BTW I succeeded in building it for Raspberry Pi OS Buster on Raspberry Pi 4B and it works with all programs I tested with so far. x16emu_linux-armhf-2021-03-29.zip
  24. There is a flow control command in Applesoft BASIC that might be good to have in X16 BASIC: POP Removes one address from the return stack, i.e. converts last GOSUB into a GOTO. POP could be useful in more advanced BASIC programs. Maybe this could be solved using POKE, but it would be easier with a BASIC command, and then more old Applesoft BASIC programs could run on Commander X16. I did find two programs that uses POP: https://github.com/inexorabletash/jsbasic/blob/master/samples/sample.nuclear.txt https://github.com/inexorabletash/jsbasic/blob/master/samples/sample.pacman.txt https://www.calormen.com/jsbasic/reference.html https://www.landsnail.com/a2ref.htm
  25. In VIC20, C64, and X16 BASIC the AND, OR, and NOT operators are bitwise, but in Applesoft they are logical/boolean. 3=3 is -1 in X16 etc., but 1 in Applesoft. STR$(7) has an extra space for sign in X16 etc., but not in Applesoft. Applesoft is described here: https://www.calormen.com/jsbasic/reference.html X16 BASIC is the same as C64 BASIC (CBM BASIC v.2), but with enhancements: https://github.com/commanderx16/x16-docs/blob/master/Commander X16 Programmer's Reference Guide.md
  • Create New...

Important Information

Please review our Terms of Use