Sunday, January 6, 2019

Gen 2 App: cliclac now has a memory monitor

Memory monitors. computers have had memory monitors for quite some time, but until now SBTCVM has had to do without one.

Meet CliCalc Embedded Memory Monitor

CliCalc Embedded Memory Monitor In all its Glory.

Its fairly basic at the moment. only having single-address-at-a-time reads and writes, for the data, instruction, and IO buses respectively.

Possible improvements include dumping ranges of memory in a similar fashion to romdump.py  (Added), As well as possible disk support when time (and SBTVDI's development state) allows.

 

 Fun:


via 'L', you can write to the IObus. that may not sound like much, but that means you can do this:

  1. start clicalc from the xas.py shell (so you can still see the TTY output mirrored to the OS terminal's standard output)
  2. enter the memory monitor via  'p'
  3. 'L' command: address 500, value 30   :A grey screen should appear in place of the pygame window's emulated text screen.
  4. 'L' command: address 507, value 9490 :The screen should turn bright violet/purple
  5. 'L' command: address 500, value 0    :The tty should now be displayed again.

Friday, January 4, 2019

Developers Notes: Building for the future: looking on at 2019

Its hard to believe its been over 3 years since i started this project. It seems only yesterday that i was running the first tests on SBTCVM Gen2-9's memory framework.

       Its gone from a buggy, slow, mess of a python program, to a streamlined, 6.5Khz, modular VM, well suited to running things like calculators, games, and even mouse-driven programs via the pygame frontend.

Looking back on 2018

SSTNPL:

      Its hard to describe how much SSTNPL has helped coding for SBTCVM.  everything from the maze engine, to clicalc, to even many of the hardware demos. Its extensive TTY input and output integration, named integers, and its ever powerful 2D integer table system, this clever compiler has certainly helped along things...

SBTCVM Assembly v3:

      From its early beginnings in TDA mark 1, to its 9-trit rehash in Mark 2, to its Gen 2-9 rewrite, SBTCVM assembly has been not only the main compilation target for SBTCVM, but for a while, was its only language. While its direct use has dropped considerably since Mark 2, thanks to SSTNPL, its still a key component of SBTCVM's development pipeline, with SSTNPL not only compiling into SBTCVM assembly, but featuring support for its inclusion in-line.

      Not only that, the assembler is now the first SBTCVM language with a standard library. with tas0 files for statically linked routines and other bits of data, to .nsp files for namespace variables, which represent the new unified label/compile-time variable system. It even has header variables for controlling the compilation process in more detail.

eXstensible Assembly Script/Shell (XAS):

Despite the name, it does more than script the assembler. This program represents SBTCVM Gen2-9's platform independent build script system & interactive shell. Very handy for building projects with images converted to ternary-packed-art (block art) for example.

       It also has a few extra features in interactive mode. such as categorized command help, directory listing and a builtin find command for searching for that pesky file...

SBTCVM Gen2-9:

      This is among SBTCVM's greatest landmarks. Gen 2 marks the beginning of not only a new design of SBTCVM's codebase, but a new chapter, for at the very least, SBTCVM.  However, perhaps, balanced ternary will one day be more than a mere footnote in computer history, but a major player in computing, once again.

Looking on at 2019

Among the things being looked into just over the horizon, include quite a few topics..

New programming languages: 

      SBTCVM already has 2 goto-label based languages, (SSTNPL, SBTCVM assembly), but its apparent that a greater variety of languages are needed. While most ideas involve compiled languages, a few are floating about involving interpreted languages, and line editors. not much to show for either, particularly the latter. (eekee's scal for Mark 2, and my clicalc for Gen2-9, are kinda close, but in reality they are just 2 different calculators...) 

New Tools:

      As more features get added, and as clever programmers take up SBTCVM's challenges, you might just find a growing list of tools, converters, editors, and other nifty things.

New APPs:

      New Apps eh? like what? Well more games are almost a given, as both the mouse, and the plotter are yet to be exploited by them. and thats not even counting the tilemap graphics modes currently on the SBTGA drawing board.

      However, its also to be expected to find a verity of new tools for various things. they may not all be as fast, nor as polished as the external utilities tend to become, but the important part is whether they work isn't it?

Looking Forward

      Its with that, I wish everyone a happy new year, and hope not only SBTCVM's development, but your 2019 as well, goes great this year!

And who knows, perhaps one day, balanced ternary will be, perhaps, a bit less obscure than it is today...