Beyond 80x25 x 16c with ENiGMA 1/2 BBS

From 80 to 132 Columns with moar colors

A lot of attention has been given to slightly larger formats than the legacy 80x25 sizes from years yonder lately. While I absolutely love the ‘DOS’ look and restrictions of 80x25 and 16 colors, 132 columns – and high color support – has gained in popularity amongst the BBS / artscene community.

So let’s do it with ENiGMA 1/2!

Enter ACS

If you’ve messed with the systems menu.hjson format much, you may already know: Everything the user is presented with is essentially a “menu”. With ENiGMA’s Access Condition System (ACS), we have full control of of the flow of these menus.

Some ACS codes are of particular interest:

  • TW: Terminal Width is >= specified value
  • TT: User’s current terminal type is one of the specified set of terminal types

With these two ACS codes we can route users to new prompts, menus, and so on. Suppose we want a to control which matrix a user is presented with at connect:

connect: {  
  art: connect
  next: [
    {
      acs: TW132
      next: matrix132cols
    }
    {
      next: matrixLegacyCols
    }
  ]
}

Of course we can combine or use TT separately. NetRunner for example sets its ttype to ansi-256color-rgb, so we could:

acs: TT[ansi-256color-rgb] // add more by adding comma separated values