ROMv3.py "Execute this to build ROM files" doesn't work

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice. No drama.
Post Reply
Travis
Posts: 1
Joined: 07 Jun 2019, 21:02

ROMv3.py "Execute this to build ROM files" doesn't work

Post by Travis »

When I run ROMv1.py I get an error about undefined symbol 'Reset'.
How do I build the ROM?
Here is exact cut&paste of what I see:

~/gigatron-rom$ Core/ROMv1.py
runVcpu at 01fd cycles 148 info line41-521 typeF
runVcpu at 024f cycles 100 info line0
runVcpu at 029f cycles 130 info line1-39 typeC
runVcpu at 02a6 cycles 134 info line1-39 typeABD
runVcpu at 02d6 cycles 120 info line40
SYS limits low 100 high 148

Error: Undefined symbol 'Reset'
Error: Undefined symbol 'Reset'
2 error(s)

HINT: I should have just looked in the Makefile :( . But Marcel was kind enough to send an even more informative response and said if I posted my question here he could respond similarly for the benefit of all (thanks Marcel!)
User avatar
marcelk
Posts: 488
Joined: 13 May 2018, 08:26

Re: ROMv3.py "Execute this to build ROM files" doesn't work

Post by marcelk »

The .py file itself contains the kernel loops and SYS functions (and images, but I think I will change that at some point). You need to announce the higher level stuff that you want to include with the ROM (applications) on the command line. The ROM builder will then put these in the cold storage portion of the ROM image. These can be .gt1 files (precompiled vCPU programs), or the older .gcl files (they will be compiled on the spot). The filename becomes the label (minus version number and extension). Or you can use something like Reset=MyCoolOS.gt1, and it will link in that file and call it 'Reset'.

'Reset' and 'Main' are just applications… Main.gcl is the main menu. Reset.gcl is the last part of the soft reset sequence. Both are written in GCL instead of 8-bit code. It might change to C in a later version.

From the Makefile you can see how it is done for ROM v3:

Code: Select all

       python Core/ROMv3.py\
                Apps/Snake_v2.gcl\
                Apps/Racer_v1.gcl\
                Apps/Mandelbrot_v1.gcl\
                Apps/Pictures_v2.gcl\
                Apps/Credits_v2.gcl\
                Apps/Loader_v2.gcl\
                Apps/Tetronis_v1.gt1\
                Apps/Bricks_v1.gt1\
                Apps/TinyBASIC_v2.gcl\
                Apps/WozMon_v2.gt1\
                Apps/Sprites_v1.gt1\
                Apps/Main_v3.gcl\
                Core/Reset_v3.gcl
If you want to make your own ROM, you can replace Main_xxx with your own Main file (.gt1 or .gcl), and remove everything else (except Reset, because Reset starts Main…).

See also this forum post:
https://forum.gigatron.io/viewtopic.php?p=398#p398
Post Reply