Hardware Mode Control

Overview

Consider the following situations:

  • Auto-boot game or application cartridge
  • Application which requires user feedback about whether artifact colors are red/blue or blue/red and requests that the user press reset until they are swapped (as an aside, this won't work with CoCoVGA - it does not recognize E vs Q clock phase)
  • Application whose video modes change

These use-cases are difficult to handle using only Software Mode Control. In the case that a piece of software does not make it straightforward to use Software Mode Control, many of the desirable extended features are accessible by way of 2 additional hardware buttons.

The VGA header connector of the CoCoVGA board provides 2 pins whose voltages can be manipulated to communicate mode change requests to the CoCoVGA FPGA. These pins can be driven by way of Ed Snider's COCOVGA SWITCHBOARD AND PORT, which, in addition to the mini-DIN connector carrying VGA, has 2 debounced momentary button switches which each control one of these two pins on the CoCoVGA board. The FPGA recognizes which button is being pressed and whether it is only a momentary toggle or a hold of 1 second or more.

The buttons are context-sensitive. That is, the FPGA recognizes the current video mode and cycles through settings appropriate to that mode.

Note that Software Mode Control supercede Hardware Mode Control settings. In other words, if a mode is selected via the hardware buttons, and software requests that setting is overridden, then it will be changed as requested by software.

Specification

Text/Semigraphics

Button 1 Press

Press Number Reverse Video Alpha Palette Size Scanlines
None no full no
1st yes full no
2nd no reduced (no dark green/orange) no
3rd yes reduced (no dark green/orange) no
4th no full yes
5th yes full yes
6th no reduced (no dark green/orange) yes
7th yes reduced (no dark green/orange) yes
8th -> back to "None" - - -

Button 1 Hold (1 second)

Hold Number Force Lowercase
None no
1st yes
2nd -> back to "None" -

Button 2 Press

Note that some of these modes may be more usable in their "reverse-video" form, as selected by button 1 presses, described above.

Press Number Text Foreground Color Text Background Color
None default (black) default (green or orange, depending on CSS)
1st black orange or green, depending on CSS
2nd black red
3rd white red
4th black yellow
5th black blue
6th blue white
7th black white
8th -> back to "None" - -

Button 2 Hold (1 second)

Hold Number Quiet Border Status
None no
1st yes
2nd -> back to "None" -

CG and RG1/2/3

Button 1 Press

Press Number Border Color Scanlines
None normal no
1st black no
2nd normal yes
3rd black yes
8th -> back to "None" - -

Button 1 Hold (1 second)

CG6: Toggle 64-column text mode

Button 2 Press

No additional features are supported by button 2 press in this video mode.

Button 2 Hold (1 second)

Hold Number Quiet Border Status
None no
1st yes
2nd -> back to "None" -

RG6 (PMODE 4)

Button 1 Press

Press Number Artifact Color (blue vs. red) Border Color Scanlines
None normal normal no
1st swap normal no
2nd normal black no
3rd swap black no
4th normal normal yes
5th swap normal yes
6th normal black yes
7th swap black yes
8th -> back to "None" - - -

Button 1 Hold (1 second)

Toggle 64-column text mode

Button 2 Press

Press Number NTSC Artifact Color Emulation Mode
None default (MESS)
1st standard
2nd fat bits
3rd smArtifact
4th MESS
5th monochrome
6th -> back to "1st" -

Button 2 Hold (1 second)

Hold Number Quiet Border Status
None no
1st yes
2nd -> back to "None" -