Jump to content
IGNORED

TI-GROMmy, the system GROM replacement


speccery

Recommended Posts

4 minutes ago, speccery said:

Hi @Gary from OPA after your bug report I thought about the PA2 issue and knew the problem even without opening my computer. I changed the banking a little at some point, and that broke the PA2 fail safe mode entry. The firmware crashed. Here is the usual collection files, version 0.7.87, it fixes the failsafe mode entry. I don't have time right now for more testing.

I repeated what you did and have TI BASIC renamed for banks 0,1,2,3. Something indeed is not right for the standard mode banking yet.

firmware.bin- strangecart firmware with the new firmware for grommy2 (cart 4)

g2config-0.7.87.bin- config pgm + firmware

grommy2-0.7.87.bin- firmware only

Thanks for fixing the PA2, failsafe option.

 

Hopefully, you can figure out the banking at least first two 24k banks are switching ok, just last two are staying stuck on bank 1 instead of being banks 2/3.

  • Like 1
Link to comment
Share on other sites

Posted (edited)

Hi @Gary from OPA I took another look during a short break and I found the problem and fixed it, I thought I was calling a function but I had optimized it to a macro and the macro expansion lacked parentheses which caused an expression not to work.

A quick question, with the fix in place I am using mode 0 standard banking, but for me the normal module list list is not showing multiple basic versions (i.e. different programs at GROM address 2000 across the four banks), is that how it is supposed to work?

Edited by speccery
  • Like 1
Link to comment
Share on other sites

2 hours ago, speccery said:

Hi @Gary from OPA I took another look during a short break and I found the problem and fixed it, I thought I was calling a function but I had optimized it to a macro and the macro expansion lacked parentheses which caused an expression not to work.

A quick question, with the fix in place I am using mode 0 standard banking, but for me the normal module list list is not showing multiple basic versions (i.e. different programs at GROM address 2000 across the four banks), is that how it is supposed to work?

With standard original ti operating system you will not see multiple ti basics, as it only checks for different module names from g6000 area.

 

If you had another device doing multiple grom bases in the cartridge space, you would see "review module library" as the last option and selecting it then you would see the second ti basic and so on.

 

You would need to have a patched OS to check starting at g2000 instead, or be running my SOB version.

 

I am on my mobile, so I can't right now quickly attach my SOB version or give you the hex address of the two bytes in grom 0 to change.

 

Instead use that attached memory editor I included in my previous message to check each page to see if the name changes.

 

Thanks again for your quick bug fixing...

Edited by Gary from OPA
spelling
  • Like 2
Link to comment
Share on other sites

Silly me, @speccery I forgot my phone I have all the original source codes on it.

 

See attached page from TI's last printed assembly job from 1982.

 

Change the two highlighted parts ending in >60 to >20 at locations g01C9 and g01D4

 

Of course make that change in all 4 banks of grom0, doing that you should see the added automatic option "review module library" and the TI BASIC name changing each time you select it.

Screenshot_20240815-045809~2.png

Edited by Gary from OPA
oops forgot the screenshot of the source...
  • Like 3
Link to comment
Share on other sites

Thanks @Gary from OPA for the information. I didn't get the cart listing working and I am once again running out of time, but the bugs **should** be fixed in here, so I am sharing the files anyway with you.If you have time to test, this build should at least not put you into any worse situation. 

 

firmware.bin- includes in cart 4 version 0.7.91

g2config-0.7.91.bin - GROM module with firmware update package

grommy2-0.7.91.bin - firmware only

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

12 hours ago, speccery said:

Thanks @Gary from OPA for the information. I didn't get the cart listing working and I am once again running out of time, but the bugs **should** be fixed in here, so I am sharing the files anyway with you.If you have time to test, this build should at least not put you into any worse situation. 

 

firmware.bin- includes in cart 4 version 0.7.91

g2config-0.7.91.bin - GROM module with firmware update package

grommy2-0.7.91.bin - firmware only

Been feeling a bit under the weather today...

 

Took some Motrin and NyQuil to help me through tonight.

 

So, with luck I will get to it tomorrow and report back. Got a one hour zoom meeting tomorrow as well, so most likely will be after it.

 

Thanks again for your quick fixes.

  • Like 1
  • Sad 1
Link to comment
Share on other sites

8 hours ago, Gary from OPA said:

Been feeling a bit under the weather today...

 

Took some Motrin and NyQuil to help me through tonight.

 

So, with luck I will get to it tomorrow and report back. Got a one hour zoom meeting tomorrow as well, so most likely will be after it.

 

Thanks again for your quick fixes.

Sorry to hear about that, hopefully you recover quickly. At least here we’ve having an increase in covid cases, hopefully it’s not that.

 

No rush with testing, I’m trying to fix bugs fast when I still remember what I was working on. If I have time I will do some more testing on my own. 

  • Like 1
Link to comment
Share on other sites

8 hours ago, speccery said:

Sorry to hear about that, hopefully you recover quickly. At least here we’ve having an increase in covid cases, hopefully it’s not that.

 

No rush with testing, I’m trying to fix bugs fast when I still remember what I was working on. If I have time I will do some more testing on my own. 

WEEE -- Good News --- IT WORKS! -- Many Many Many Thanks.

 

The PA2 mode now works fine, boots into my failsafe grom, with no ti basic available, when the switch installed previously is to the right (pulled low).

All tho, I have not been able to re-flash the "failsafe grom" area, now that its no longer empty, it is stuck as is, but no big deal, at least its there, as a backup if I fuck up the other 4 banks.

 

Of course, currently your grommy2 defaults to mode 1, so I need to go into the config and change to "standard banking" mode 0 and then reset the console, lucky your strangecart has reset button that works, for some reason on my finalgrom99 my reset button is flaky, doesn't always work, and zippy-do the 4 different TI BASIC's appear, so the banking is working, and my previous solder job is ok, no need to open up the console again.

 

next step on my end, is to fit in the command to switch to mode 0 on power-up, so I don't need to manually load your config and select that mode, and reset the console.

 

And i then tested the banking, if 3 programs, the pgram+ BOOT menu that supports 4 different paging banks by pressing the G button, and then in the EA5 memory editor (pgram+ edition / 4 pages only) and finally in my unreleased RAMOS directory (which supports up to 8 banks), all working smoothly, no errors at all.

 

Now, I can start coding up a 96k operating system, uses all 4 banks, as TI Basic is only needed in the first page, all the other banks can have new fancy code instead, without any compatibly issues with other cartridges out there. of course the first 6k of grom 0 should be mirrored always in all 4 banks, with the last 2k used mainly for new common code as well. So all together, at most without problems you can easy have around 56k of all new code, with the top 7k of each grom 0 shared, and the 12k of ti basic in bank 0 reserved, giving you around 5k of new code in bank 0, and around 17k times 3 of new code in the other banks.

 

sorry for the stack of pictures, just wanted to show it all working perfectly.

 

Many Many thanks again.

 

P.S. -- Now we need a SuperGrommy2 with 16 pages of 24k, since we got this figured out perfectly, but 96k (4 pages) is good enough, don't want to go overboard. because really you could have 256 pages of 24k if you really wanted!! -- haha - imagine 6mb OS! :)

,

PXL_20240816_202930060.jpg

PXL_20240816_202934062.jpg

PXL_20240816_202939103.jpg

PXL_20240816_202952360.jpg

PXL_20240816_202959372.jpg

PXL_20240816_203002006.jpg

PXL_20240816_203039599.jpg

PXL_20240816_203100416.jpg

PXL_20240816_203255106.jpg

PXL_20240816_203301245.jpg

PXL_20240816_203308088.jpg

PXL_20240816_203314152.jpg

PXL_20240816_203422406.jpg

PXL_20240816_203427914.jpg

PXL_20240816_203430372.jpg

PXL_20240816_203432801.jpg

PXL_20240816_204947956.jpg

PXL_20240816_204951668.jpg

PXL_20240816_204956554.jpg

PXL_20240816_205000182.jpg

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

Posted (edited)

Thanks @Gary from OPA for all the testing work! I really appreciate the work and guidance to your i.e. the community's needs.

 

Yes the supergrommy prototype already could support the 16*24k banks for GROM and 4*24k banks of GRAM. Even supporting 8-bit base addresses and 6MB of OS GROM would be possible by adding a memory chip. I have many ideas how to improve the hardware, but I'm not sure if it needs improvements in the short term. Knowing myself I will probably try a few things...

But as far as developing very large programs for GROMs goes, the community is probably very small. Probably for larger software projects people would use C language? At least that's what I would personally do, but it's just my opinion.

 

If you want to try reprogramming the Failsafe area, there is the command #8 which does that. It comes in two variants, the latter one I have not tested yet but it is implemented and should work to force reprogramming.

Programming of failsafe GROM from the first 6K of GRAM. Normal programming.
The following 16 bytes written to >5FF0..>5FFF using one MOVE command from GPL:
08, F7, 00, 00,  00, 00, 00, 00,  45, 50, 47, 52,  4F, 4D, 4D, 59  

The above version only works if the failsafe area is empty, there is a safeguard in the code. But there is this version of the same command, with forced write, should work even if the failsafe area has been programmed earlier:

08, F7, 00, 00,  F0, 00, 00, 00,  45, 50, 47, 52,  4F, 4D, 4D, 59

 

Edited by speccery
  • Like 4
  • Thanks 2
Link to comment
Share on other sites

  • 2 weeks later...
On 9/1/2024 at 2:20 PM, dhe said:

@speccery  - Now that you have worked out some bugs, and @Gary from OPA has ported his super awesome SOB software, and we'll have need of GROMmy's for TI-99/22 board.

  Do you have any plans to send GROMmy out for manufacturing so @arcadeshopper can stock these in quantity?

Thanks @dhe yes I will be making more boards and plan shipping some to @arcadeshopper. Currently I haven’t planned getting them manufactured but that will depend on the demand. Anyway first step is to build the ones I have parts for and see how far it goes. I will also make a minor revision for next PCB batch to make them faster to build regardless how they get build. The functionality will stay the same.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

1 minute ago, speccery said:

Thanks @dhe yes I will be making more boards and plan shipping some to @arcadeshopper. Currently I haven’t planned getting them manufactured but that will depend on the demand. Anyway first step is to build the ones I have parts for and see how far it goes. I will also make a minor revision for next PCB batch to make them faster to build regardless how they get build. The functionality will stay the same.

maybe, if possible for minor revision to make the points to add the two extra address lines (if required) more accessible, by at least adding a two pin header for a detachable cable with wires.

  • Like 4
Link to comment
Share on other sites

I've been in the past few evenings editing the grommy2 PCB design a little, to bring all the components to the top side in order to make the boards faster to build. I've built the boards so far without a stencil, but for a little bit bigger quantities a stencil will be needed to speed up the assembly process. The board size is exactly the same, as is the functionality. J7 is a ground pad and adjacent to it is a bigger header with 0.1" pin pitch for the two address lines for banking. I needed to route a bunch of signals again to make space for the components on the top.

I haven't yet ordered the new boards, as I'm also planning to design a couple other boards and order them in one go. One of those boards would be a simple USB programming adapter for the grommy2 board, it would pretty much just be a FTDI USB adapter chip with the right pinout for the grommy2. It would be good for me to speed up initial flashing of the boards but also for people like @Gary from OPA doing deeper GROM / grommy programming; it would allow recovery of a firmware upgrade going awfully wrong.

image.thumb.png.7a65596374843e1096a74d57174787b1.png

I have also updated the documentation (not for the new PCB which is functionally the same) adding the information for the banking, failsafe etc. 

grommy2 presentation.pdf

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

I think I'm done with the design of the grommy programmer board, which is effectively just a FTDI breakout board which the same pinout as grommy2. It enables the grommy2 microcontroller to be programmed with STM32CubeProgrammer software.  This board is not normally needed for a grommy2, but it should make my life a bit easier when programming the firmware for the first time for a new board.

 

There are two small buttons on the board, I don't have a 3D model for them as I created the footprint myself, so the buttons do not show up below. I suppose I could create the model with Freecad but not this time.

The switches are of type TL1030AF350AQJ from E-Switch. If someone has a good recommendation for another tiny push button please let me know, I am looking for surface mount buttons, the size of this one is 3.5mm * 2.9mm. The extra pin headers would not be mounted normally, I did want to break out the pins though since I've used this same chip (on the ULX3S FPGA board) to program FPGAs, I needed to tweak the programming software at that time to get it running on macOS.

image.thumb.png.820729209ade6d67e5bea6a6569c3c9d.pngimage.thumb.png.c0b7c66b0f6b1b9adacc509e8d661b91.png

 

Edited by speccery
  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...