Downloads

Firmware:

New firmware update 05/05/2026: vetus-1-0-4.zip. This update is for version 1.0.3.

Vetus Pars 1.0.4

Fixed:

  • There was an indexing bug with test strings. Some tests were being saved with ghost strings from other chips. This has caused some tests to show wrong strings. This would especially be noticeable in tests with a lot of strings and tests that rely on feedback text for results. Most tests haven’t been affected but if you run into a situation where text doesn’t make sense or doesn’t look right at all you can check the strings that were saved onto Vetus Pars by scrolling to strings after selecting the chip. If they don’t match what is inside of the test file (which is only a text file) then you should delete that chip and reinstall it after you have updated to this firmware.
  • Fixed a bug with WaitForButton. It should now properly allow you to choose a button and wait for it to be pressed. Button 1 will still make you leave the test so that button is basically moot.
  • A pseudo 7-segment display has been added. You can place it anywhere on the screen with multiple sizes and colors. Because the GUI does not have this OpCode as of yet it will have to be input manually for now. the OpCode works as follows. 0x70 is the OpCode. Argument 1 is the number to display. Argument 2 is pos x,y the upper 16 bits are X and the lower 16 are Y. Argument3 is size and color, the upper 16 are the size which is really capped at 256 and you will likely not go higher than 8, the lower 16 bits are the color in RGB565 format. Ex: 0x70 0xFF 0x000A0005 0x0002F800. would give you the number 255 (0xFF) at position X=10 (A) and Y = 5 with the size of 2 and the color red (0xF800).
  • A new command has been added for the new GUI and those who make their own. You can now get the firmware version from Vetus Pars via the command CMD_GET_VERSION 0xDB. Your code should wait for a response with COBs and CRC8 like any other packet and it will have 4 8 bit numbers representing the major, minor, patch, build numbers. The numbers are packed as such: static inline uint32_t FW_PackVersionU32(void) { return ((uint32_t)FIRMWARE_VER_MAJOR << 24) | ((uint32_t)FIRMWARE_VER_MINOR << 16) | ((uint32_t)FIRMWARE_VER_PATCH << 8) | ((uint32_t)FW_BUILD << 0); }
  • Some minor adjustments have been made for aesthetic reasons. It is subjective of course.
  • Preparations have been made for the new GUI which will also see the introduction of the first add-on board. The new board is for SIMM30 RAM chips. Although the SIMM30 board does not require it, it does have a small eeprom for board recognition. Some future boards will require recognition only for assuring the correct communications are happening between the add-on and Vetus Pars. This will be explained in more detail when the GUI and boards as available. Others will be allowed to make their own add-on boards so as much information about building them as possible will be available.

Added on May 6, 2026.

Vetus GUI – Test Uploading/Writing

What’s new? Well, a fair bit. First of all, the UI of VetusGUI has been made a little better looking. Hopefully, you agree. It has also been made more useful for those who want more control of testing and the tests in the board. Here is a run down of what’s been changed and how to use the new features. The link is below the update notes. You SHOULD read the notes if you plan to make your own tests.

UI Fixes

  • The UI is now laid out a little better and everything you need for chips is on one screen.
  • After loading chips from Vetus you now have the option to delete or load a selected chip.
  • Tooltips have been added
  • The code window now has line numbers for easier determination of jump locations.
  • The code window now has color coded tags. Opcodes are now blue, comments are green and so on.
  • A toggle has been added to darken the code window and whiten the normal text for easier viewing.
  • You can now add comments to your code use /* comment here */ type tags. Do not comment past the code window. If you need more space then use enter to go to the next line. Comment one line at a time but you only need to use /* */ once.
  • You can now copy, cut, paste and select all using the mouse.
  • There is now a button near the code window for error checking. It gives a basic test for syntax. It should be useful.
  • Code formatting such as indentations and spaces will be preserved through file saving and on the code box in VetusGUI. At the moment is still not possible to format code imported from Vertus Pars.

Variables

Variables are now at your disposal. You can use a variable for a value or a register. Variables do not use code space so your 256 opcode lines are not affected. To declare a variable you need to use the keyword “DIM” (call me nostalgic) like so: DIM MYVAR 0xFF now you can use MYVAR wherever you would normally want to use 0xFF. Yeah, that’s not really a variable because it doesn’t vary. Fear not. To use a register as a variable you simply need to declare it like you would to get a value from it. For example, DIM MYREG #R5. will allow you to use MYREG where you would normally use register 5 like a normal variable, setting and retrieving the value via the variable name only.

Functions

You can now create your own functions in VetusGUI and the newest firmware update has been reworked to allow for them. At the moment, the functions can help you do several things. First, they can help you have cleaner code. If you have something you need to do over and over again it’s much better if you only have to write the whole thing once. This is also save on code space. As of right now, Vetus gives you 256 lines of opcodes to work with. For m most test that should be enough, but adding functions makes it even better because the firmware has been updated so that the function code is only saved once unlike if you had the same code multiple times. And finally, you can return values by sending results to a register.

How do they work?

To create a function you simply need to use the FUNC tag after ENDTEST. You must also give it a name. So, for function myFunc you would use FUNC myFunc. That’s it. When using functions you don’t need to make sure you add all of the arguments like with other opcodes. After you’ve created the function name, on the next line you create your function using any of the other opcodes available. Once you’ve finished you end the function with ENDFUNC. And that’s all you need to do. After you’ve created a function you can use it anywhere in your code by using CALL. Using myFunc again as an example, CALL myFunc. And there you have it. That’s all there is to it. Below is a sample of what using a function might look like.

DIM TIMES #R0

REGLOD TIMES 0x5 0x0

LOOP TIMES 0x0 0x0
     CALL shiftLED
ENDLOOP 0x0 0x0 0x0

ENDTEST 0x0 0x0 0x0

FUNC shiftLED
     LEDON 0x0 0x0 0x0
     DELMS 0x12C 0x0 0x0
     LEDOFF 0x0 0x0 0x0
     DELMS 0x12C 0x0 0x0
ENDFUNC

And that right there is how both the variables and functions work. You can test the code above and it should give you 5 blinks before failing.

Test Code Files

Documentation

Previous Updates:

New firmware update 02/05/2026: vetus-1-0-2.zip. This update is for version 1.0.2.

Vetus Pars 1.0.2

Fixed:

  • You can now delete one chip at a time. When you delete a chip, the last chip in the list will be move to replace the deleted chip.
  • This version is required for code that uses the new functions system. As such it should be considered mandatory so that is compatible with code written from this point forward.
  • various bug fixes and tweaks.

Added on Feb.5, 2026. This version is required for code that uses FUNC, ENDFUNC, or CALL.

New firmware update: vetus_fw_101.zip. This update is for version 1.0.1. 

Vetus Pars 1.0.1

Fixed:

  • a scrolling bug that locked the unit when trying to open chips list when more then 32 are saved.

Update:

  • menu now scrolls via page. You can now scroll through 10 chips then the menu will flip and show the next 10 items.
  • Deleting single chips are now implemented. When Vetus GUI is updated (soon) you will be able to delete one chip at a time. Whatever
    chip you delete will be replaced by the last chip in the list before the chip was deleted.