Friday, September 24, 2021

Five years ago...

Five years ago, to this exact day:


TDA Mark 1, SBTCVM's initial prototype, was uploaded to GitHub.


Its been a huge undertaking, and we are just getting started. Id like to take a moment to thank everyone who's helped with SBTCVM, for all the hard work that's been done.

And with that, lets hope for another 5 years!

 

 

Signed, Lead Coder & Project founder:

Thomas Leathers.

Wednesday, November 11, 2020

SBTCVM Bench: Groundbreaking rework (v0.2.0)

 

New Features:

  • Instant return from desktop from Bench apps (doesn't include SBTCVM-DOS)
  • new wallpaper via PLRLE image compression technology.
  • Newly reworked with the new SBTGA Plotter Buffer System for more impressive graphics.

Thursday, November 5, 2020

fttarget: New Plotter game.

fttarget, (or Falling Ternary Targets) is a `falling target` style plotter game for SBTCVM Gen 2. it joins Oncoming Trains as one of Gen 2's two SBTGA-based example games.

SSTNPL: broad performance boost.

While, its not possible to adequately depict here, SSTNPL has recently gotten a HUGE performance improvement across the board. the reason? fairly simple actually....

Null

null is an SBTCVM Assembly keyword that maps to the opcode 0 in the SBTCVM G2x ISA. for a unfortunate amount of time SSTNPL has been using nulls as an easy way to target the next block of generated assembly with a label, there were two problems with this, however:

  • This took up extra TROM space for no real reason.
  • This actually has slowed down SSTNPL's flow control (including the new 0.4.x code blocks)

zerosize 

enter zerosize. this fairly obviously named assembler keyword, doesn't generate much of anything at all... its sole purpose is to make it possible for compilers, like SSTNPL's compiler, to target the next line of assembly code, without writing that line first.

Conclusion:

as simple a change as this may be, its definitely improved performance of many different SSTNPL modules and applications.




SBTGA mode 31: new high-resolution 575x575 plotter mode.

included demo of mode 31

 SBTCVM Gen2-9 now has a high resolution, 1:1 scaled 575x575 plotter mode, in the form of SBTGA mode 31.


In terms of uses, Mode 31, offers FAR greater information density than the older 243x243 mode 30.






modified plottertext showing VERY small text.


BINRLE: new 2-tone image compression format

575x575 tritmap

BINRLE Image Compression

BINRLE is an efficient 2-tone RLE image compression format supported by the BINRLE options in gfxcon.py

it features 2 additional interpolated conversion modes:

  • BINRLE 2-line interpolation: simulates 3 tones
  • BINRLE 4-line interpolation: Simulates 5 tones. 


other features: 

  • the BINRLE module features a similar set of control variables to PLRLE, so switching between the two algorithms as needed, is fairly quick.
  • More efficient compression than PLRLE
  • both colors can be changed during runtime.

 
 

 

2-line interpolation
 

 

4-line interpolation

 

 

 

 

 

 

Thursday, October 22, 2020

SSTNPL v0.4 - Major New Features!

SSTNPL for the longest time has been limited to its goto+label system, and its stack-based subroutine system, when it comes to controling code flow... 




not anymore...

If, for, and while: SSTNPL Code Blocks are HERE!


 Yes. That code in the screenshot, on the left? Thats real SSTNPL code.

SSTNPL now features nestable:

  • new `block` conditional mode, allowing any conditional to create code blocks
  • for loops!
  • while/until loops!
  • new conditional 'break' mode & non-conditional 'break' statements, for breaking out of loops, and skipping to the end of blocks.
  • new `end` statement, which defines the ends of each block.
  • blocks can be nested.
  • you can even use blocks inside subroutines!

Helpful Links:

SSTNPL Documentation (which has been updated with information on the new features.)

Flow control Test 1

Flow control Test 2


Tuesday, October 20, 2020

Future Roadmap Update: SBTNET, Gen 3, and CerberOS.

 SBTNET

 SBTNET is the one of these three items thats planned to be tested with Gen 2.

The basic idea of SBTNET is a fully balanced ternary networking system similar to TCP/IP, emulated using a client-server scheme built against TCP/IP. 

 Its intention is to be used with not only SBTCVM, but other balanced ternary systems as well, as SBTNET's protocol schemes will be open, and the refrence client & server code Free (libre) open source software.

The SBTCVM-BTT2 text encoding is planned to be extended with additional control codes, and chosen as standard for SBTNET.

SBTCVM Gen 3

Gen 3, while it will be based upon and backwards compatible with SBTCVM Gen 2's ISA, roms, disks & compiler toolchain, the VM itself will be 12 trits, generally be expanded ISA & featureset wise, and fully reimplimented in the Rust programming language.

CerberOS

CerberOS is a future project for SBTCVM Gen 3. (one that will influence much of Gen 3's ISA extensions over Gen 2's ISA) 

Its design goal is to implement a highly portable ternary *nix-like OS, that may stand as a foundation for other ternary OSes, and act as the OS for more ternary systems than just SBTCVM.

A purpose-built portable programming language will be designed for this task, as neither existing SBTCVM Gen 2-compatible languages are portable enough,to handle a portable Ternary OS Kernel of the type CerberOS will require.

Sunday, October 11, 2020

SBTCVM-SBTVDI BIOS: new quicktest menu.

Memory size calculation.

Another, slower, more in-depth memory test.


Sound test & info option.

SBTCVM-DOS command.txe: memory state preserved between program loads.

This new memory backup support lets command.txe save its memory, and restore it when its reloaded. This not only makes drive letter selection persistent, but also opens the door for eventual batch script support once the disk IO is functional...


Not to mention, the overall formatting has been streamlined by only showing the READY status line on the first run of the session.

Thursday, July 16, 2020

SBTGA Plotter: now with triangle support!

Seen here is the newly enhanced plottest rom, compete with a sort of spaceship made out of (2D) triangles.

(No 3D rendering capacity was used or yet exists in SBTCVM...)

PLRLE Enhancements

The PLRLE format has been upgraded in 2 important ways: 
1. The PLRLE encoder in gfxcon.py, can now perform a form of lossy compression on images. (as seen in the screenshot above)
2. The PLRLE decoder module has been optimized and split into 2 versions: one with alpha colorkey support, and one without. Both with sizable decode performance boosts.

Monday, July 13, 2020

SBTCVM-DOS command line arguments - now with new dosargs module!



Featured here is the newly revised help.txe,
which has all-new command-line arguments via the dosargs SSTNPL module.