However, I believe you were trying to achieve something else here by using a procedure type but I do not understand what.
What I am venturing to do is to port a library for the RA8875 TFT driver chip. It has a massive listing of registers that you drive directly, thus the term "porting" is better described as "interfacing", as you would create a dll interface library, except instead of a dll interface you are interfacing to a set of registers of the RA8875 chip over SPI directly.
Also there are many different settings that must be initialized plus many different board varieties/options. My idea was to have a way to make init strings that will be convenient to tweak when testing output on a logic analyzer. I think just simply doing it from a custom init procedure is probably the best way and leave it at that.
I have the CONST block converted to Oberon so far. Although this is a quite massive undertaking, it looks like it will be quite simple as it's merely a bunch of simple interfacing code wrappers. No real 'coding' to do here. Just a LOT of functions to interface. Please have a look:
https://github.com/billbuzzell/RA8875_O ... 8875_b.mod
Here is the RA8875 being run on an STM32 via SPI:
Also it would be great if you could have a look at my SSD1306_OLED code:
https://github.com/billbuzzell/SSD1306_ ... 6_OLED.mod