ROMvX0

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice. No drama.
at67
Posts: 553
Joined: 14 May 2018, 08:29

ROMvX0

Post by at67 »

A testing repo of ROMvX0 has been made available here: https://github.com/at67/ROMvX0

1) Building it is not currently trivial, so my preference is you don't build it, just use the ROMvX0.rom file.

2) New Windows X64 versions of gtemuAT67 and gtBASIC are available in the Exe folder, (no source code or Linux versions yet).

3) There are around 150 new instructions, many new Sys functions for sound/midi/mod/sprites/graphics/etc.

4) There is some documentation describing what has been done, but it is unfinished and some of it is out of date, it's a work in progress, just like this entire project.

5) You can post bugs, comments, issues, whatever here, but it would be nice if you could post issues to the repo itself.

6) It's not finished, stuff is subject to change, if you use gtBASIC to build ROMvX0 applications then you will be fine, if you use vCPU ASM to build ROMvX0 applications, then you may or may not be fine, (if instructions change or move around in future versions). If you use other programming languages such as GCL or glcc, then I don't know how you will fare.

7) If you wish to use any part of the source code in your projects, then DM me, especially in your own ROM's, there are new licenses.

8) gtBASIC with ROMvX0 is capable of producing some outstanding results, there is already one project in the works that is pretty mind blowing by another author.

9) ROMvX0 is almost 100% compatible with all previous ROM's, only one application has been found that does not run so far and that is Gigatris, (a simple GCL recompile of it will fix that issue though).

10) ROMvX0 runs old non ROMvX0 applications around 5% to 8% slower than ROMv5a or DEVROM, this will not change and is a side effect of re-implementing the old instructions to make room for the new instructions.

11) The main menu is a little bare and the credits application is unfinished, (it will credit Marcel and Walter for all the original work they did once it is
done!).

12) This ROM will not work with older versions of my emulator, you will need to download the Windows exe from the repo link posted above.

13) SDCARD support with Pluggy Reloaded is fully supported, but you need to use the corresponding Arduino sketch here: https://github.com/at67/ROMvX0/tree/mai ... /BabelFish

14) ROM:
ROMvX0.rom
(128 KiB) Downloaded 11 times

15) If you build the new BabelFish, you need to install SDFat v1.1.1 to v1.1.4, (pick one), into your Arduino IDE, v2+ of SDFat doesn't currently work which is under investigation.

16) MainMenu
ROMvX0.JPG
ROMvX0.JPG (191.37 KiB) Viewed 663 times
denjhang
Posts: 53
Joined: 02 May 2021, 01:25
Location: yuenan
Contact:

Re: ROMvX0

Post by denjhang »

Fantastic, thanks for your work. I wanted to test it right away.
axelb
Posts: 29
Joined: 07 Jan 2021, 06:27

IO expansion & Arduino UNO

Post by axelb »

I am testing the new ROM on two different GIGATRON systems. One is equipped with the pluggy reloaded which works fine with the new Babelfish.ino and the gtemuAT67_WIN10_x64.exe of the repository!

However, my second system is equipped with a Gigatron RAM and IO expansion. When trying to boot from SD card using a recent system.gt1 the browser did not start. Also starting other gt1 files by means of the autoexec mechanism was not successful.
I‘m currently trying to hook up a simple Arduino UNO to this system but compilation of the ino file failed. It compiled ok when arbitrarily setting the variable sdChipSelectPin > 0. By this it was possible to control the GIGATRON with the emulator ( keys, reset, etc.). Unfortunately sending gt1 files is still not possible (neither by the emulator nor using an older sendfile.py). The progress value in the lower right of the emulator stays at 0% and transmission in the python script breaks after two steps, respectively. Do I need to adapt the GclBuild path in the loader_config.ini ? Or is there a new sendfile.py which I can try?
bmwtcu
Posts: 135
Joined: 01 Nov 2018, 12:02

Re: IO expansion & Arduino UNO

Post by bmwtcu »

axelb wrote: 20 Dec 2022, 07:38 However, my second system is equipped with a Gigatron RAM and IO expansion. When trying to boot from SD card using a recent system.gt1 the browser did not start.
I believe this ROM only supports Pluggy Reloaded and not the RAM and IO expansion. You would need to use lb3633's DEVROM for that.
axelb wrote: 20 Dec 2022, 07:38 I‘m currently trying to hook up a simple Arduino UNO to this system but compilation of the ino file failed. It compiled ok when arbitrarily setting the variable sdChipSelectPin > 0.
The SD card library requires dedicated access to the hardware SPI pins. You would need to remap the I/O to free up the SPI pins on PB2/3/4/5 in order to enable the SD card interface on those pins. The Pro Micro would be the only Arduino that supports the SD card interface as-is. The SPI pins are used for other purposes on all other boards. If you have a Nano, I might be able to whip something up over the holiday weekend for that.
at67
Posts: 553
Joined: 14 May 2018, 08:29

Re: ROMvX0

Post by at67 »

Lots of questions and lots going on here:
axelb wrote: 20 Dec 2022, 07:38 However, my second system is equipped with a Gigatron RAM and IO expansion. When trying to boot from SD card using a recent system.gt1 the browser did not start. Also starting other gt1 files by means of the autoexec mechanism was not successful.
I think ROMvX0 has some/partial support for one or more of the expansion boards, only lb3633 can answer this:

1) There are a few versions of the expansion board, from Marcel's original, to lb3633's latest version, which of these do you have?
2) I don't know which one/all or even if any, ROMvX0 has partial/full support for.
3) lb3633's latest DEVROM is probably your best bet.
axelb wrote: 20 Dec 2022, 07:38 I‘m currently trying to hook up a simple Arduino UNO to this system but compilation of the ino file failed. It compiled ok when arbitrarily setting the variable sdChipSelectPin > 0.
I added everything you need to compile the sketch to the repo, as long as your Arduino IDE is configured correctly, you should be good to go.
axelb wrote: 20 Dec 2022, 07:38 By this it was possible to control the GIGATRON with the emulator ( keys, reset, etc.). Unfortunately sending gt1 files is still not possible (neither by the emulator nor using an older sendfile.py). The progress value in the lower right of the emulator stays at 0% and transmission in the python script breaks after two steps, respectively. Do I need to adapt the GclBuild path in the loader_config.ini ? Or is there a new sendfile.py which I can try?
Is this for both Gigatron's or just the second one?

sendfile.py is Marcel's original PC code that talks to BabelFish, my emulator does not use it or need it, the fact the both the emulator and sendfile.py are failing suggests something is wrong on the Arduino side; they are completely different implementations that talk to BabelFish on the Arduino.

The GclBuild path is only used for when you want to compile GCL code into .gt1 files in the emulator.

Are you able to right click on a .gt1 file within the emulator and upload the .gt1 file to the first working Gigatron through the BabelFish/Arduino interface?
delpozzo
Posts: 34
Joined: 03 Jun 2020, 18:47

Re: ROMvX0

Post by delpozzo »

Congrats on ROMvX0 at67, this is fantastic! I really like the new menu. I've been having fun testing it out on my Gigatron and will keep you posted if I find any bugs.
axelb
Posts: 29
Joined: 07 Jan 2021, 06:27

Re: ROMvX0

Post by axelb »

Are you able to right click on a .gt1 file within the emulator and upload the .gt1 file to the first working Gigatron through the BabelFish/Arduino interface?
Yes, combining the pluggy reloaded and the new emulator works correctly when right clicking on a gt1!

In the meantime I found out that my Arduino UNO can be used together with the sendfile.py if I reduce the baud-rate to 38400 in the Windows device manager. Probably it really is a hardware issue - I will have to get another one.
1) There are a few versions of the expansion board, from Marcel's original, to lb3633's latest version, which of these do you have?
I’m using Leon‘s v6 and v7 boards. System.gt1 worked well on both before the CMPHS/CMPHU instructions were moved to a new slot. Maybe changing the linker map and recompiling wil help…
at67
Posts: 553
Joined: 14 May 2018, 08:29

Re: ROMvX0

Post by at67 »

Aaah yeah that would do it:

Code: Select all

        _asmOpcodes["CMPHS" ] = {0x2F, 0x37, ThreeBytes, vCpu, InOutVAC};
        _asmOpcodes["CMPHU" ] = {0x2F, 0x3A, ThreeBytes, vCpu, InOutVAC};
I would guess that the compiler that emits those instructions would have to be rebuilt using the new opcodes and then system.gt1 could be re-compiled.
lb3361
Posts: 249
Joined: 17 Feb 2021, 23:07

Re: ROMvX0

Post by lb3361 »

If you want binary compatibility with ROMv5a, you need to leave the ROMv5a opcodes where they used to be. Otherwise things will break.
at67
Posts: 553
Joined: 14 May 2018, 08:29

Re: ROMvX0

Post by at67 »

I don't need binary compatibility with pointless instructions, (with respect to ROMvX0), taking precious page3 slots, hence I moved them.
Post Reply