GOPHERSPACE.DE - P H O X Y
gophering on gopher.linkerror.com
Honeywell BCRU series terminals
(Specifically, tested on a BCRU211G-001 model)
----------------------------------------------------------------

For the most part, this terminal behaves like a VT52.
Without ANSI compatibility mode, and without 
the GEMDOS/TOS extensions, but it also has a bunch of extra
features.

Size: 80x24 lines

---- Hardware connectivity ----

To wire up this terminal, for me anyway, I had to make a basic
DB25 to DB9 full null-modem cable BUT with both RXD's on the
terminal-end (the db25) bonded together for whatever reason,
otherwise there would be no data received by the terminal.

DB25 pinout:

--------------------------------------------------------------------
\ (1 ) (2 ) (3 ) (4 ) (5 ) (6 ) (7 ) (8 ) (9 ) (10) (11) (12) (13) /
 \   (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25)  /
  \______________________________________________________________/

  1: Shield ground          6: DSR (data set ready)      11: N/C
  2: TXD (transmit data)    7: Signal ground             12: DCD (2)
  3: RXD (receive data)     8: DCD (data carrier detect) 13: CTS (2)
  4: RTS (request to send)  9: test                      14: TXD (2)
  5: CTS (clear to send)   10: test                      15: DCE

 16: RXD (2)  21: signal quality detector
 17: RX clock 22: RI (ring indicator)
 18: N/C      23: data signal rate detector
 19: RTS (2)  24: DTE
 20: DTR      25: N/C

DB9 pinout:

  -----------------------
  \ (1) (2) (3) (4) (5) /
   \  (6) (7) (8) (9)  /
    \_________________/

1: DCD 4: DTR 7: RTS
2: RXD 5: GND 8: CTS
3: TXD 6: DSR 9: RI

Wiring:
-------

DB25                    DB9
-------------------------------------------------------------------
   1 (shield)          -> shield (the metal bit around the connector)
   2 (TXD)             -> 2 (RXD)
   3 (RXD) + 16 (RXD2) -> 3 (TXD)
   4 (RTS)             -> 8 (CTS)
   5 (CTS)             -> 7 (RTS)
   6 (DSR) + 8 (DCD)   -> 4 (DTR)
   7 (GND)             -> 5 (GND)
  20 (DTR)             -> 1 (DCD) + 6 (DSR)

DIP switch settings
-------------------

   1 2 3 4 5 6 7 8 9 10
   _ _ _ _ _ _ _ _ _ _
1 | | | | | | | | | | |
0 |_|_|_|_|_|_|_|_|_|_|
   | | | | | | | | | |
   | | | | | | | | | `- NOOP
   | | | | | | | | `- ??
   | | | | | | | `- baud rate 1
   | | | | | | `- baud rate 2
   | | | | | `- baud rate 3
   | | | | `- ??
   | | | `- ??
   | | `- vertical wrap (if in the down position, 
   | |                   going past line 24 wraps back to line 1, 
   | |                   effectively disabling scrolling and messing 
   | |                   up all sorts of stuff for most stuff expecting
   | |                   normal terminal behavior.)
   | `- local echo (up=off, down=on)
   `- Test mode (runs test loops)

When spawning a tty, switch 5 when off, gives me readable text right
away in a login prompt, but typing into the prompt causes unreadable
characters. (so there is something out of sync after login does it's
tty detection magic) - Switch 5 when on, gives me unreadable text at
the login prompt, but as soon as I type in a username and hit enter,
terminal detection does the right thing, and text becomes readable 
and everything works fine. So this one might be bits per character,
but in one direction only? Need to mess with these more...

Baud rate configuration switches:
---------------------------------

     .---- baud rate 3   (switch 6)
    / .--- baud rate 2  (switch 7)
   / / .-- baud rate 1 (switch 8)
  / / /
 0 0 0          300 baud
 0 0 1          600 baud
 0 1 0         1200 baud
 0 1 1         1800 baud
 1 0 0         2400 baud
 1 0 1         4800 baud
 1 1 0         9600 baud
 1 1 1        19200 baud

---- Things that deviate from the vt52 ----

enter/exit graphics is reversed compared to the VT52, 
at least per wikipedia and other documentation online, 
unless all that documentation is wrong, which is I 
guess also plausible given that everyone just copies
everyone these days. 
^Z also behaves differently, in that, instead of sending
identifying information back to the host, it instead prints
debug info on the terminal. It also has a second version
of this, ^z which prints a shorter version of the debug
info.

    Enter graphics:     ^G (\033\107 or \x1b\x47)
    Exit graphics:      ^F (\033\106 or \x1b\x46)
    Debug info (long):  ^Z (\033\132 or \x1b\x5a)
    Debug info (short): ^z (\033\172 or \x1b\x7a)

Cursor movement and everything else, is the same as VT52.
(Unfortunately left-cursor acts like a back-space so it's
destructive.)

---- Extra stuff the VT52 doesn't do ----

The Honeywell BCRU can change it's font brightness
to a less bright color, and switch back. It has a 
single-command clear screen, akin to the equivalent
in the vt's GEMDOS/TOS extensions, but a different code.

* It has screen blanking functionality (it 
automatically blanks on idle but there is also a
control code you can send to force the screen to 
turn off)
* It can beep
* There's these weird "one-line" modes, 
I don't know what else to call them, where all 
input/output is stuck on either the top or bottom 
line, depending on the code  you send; and i can't
figure out for the life of me how to get out of 
them other than power-cycle the terminal; I have 
to investigate those more. Perhaps these are 
resize commands?
* There's a neat 'screenshot' command where it
will send back everything on the screen to the
host.
* Obviously also the 'different' graphics mode.
* It can display light-colored or normal colored fonts.

        Clear screen: ^`   (\033\140 or \x1b\x60) 
    Blank screen:     ^c   (\033\143 or \x1b\x63)
    Beep:             ^Y   (\033\131 or \x1b\x59)
 Oneline-mode-bottom: ^w   (\033\167 or \x1b\x77)
 Oneline-mode-top:    ^DEL (\033\177 or \x1b\x7f)
    Light font:       ^4   (\033\064 or \x1b\x34)
   Normal font:       ^3   (\033\063 or \x1b\x33)
   Screen dump:            (\033\351 or \x1b\xe9)

I'm sure there's more I have yet to discover here.

---- Scancodes for the 'special' keys ----

( top row function keys )

menu       | \x1b \x35 | ^5
clear      | \x1b \x65 | ^e
signoff    | \x1b \x32 | ^2
erase      | \x1b \x4b | ^K
calculate  | \x1b \x38 | ^8
print      | \x1b \x3a | ^:
help       | \x1b \x36 | ^6
indent     | \x1b \x3e | ^>
center     | \x1b \x50 | ^P
dec tab    | \x1b \x52 | ^R
super sub  | \x1b \x54 | ^T
merge      | \x1b \x5c | ^\
format     | \x1b \x5e | ^^
execute    | \x1b \x69 | ^i
page       | \x1b \x23 | ^#
note       | \x1b \x25 | ^%
stop       | \x1b \x27 | ^'
esc        | \x1b      | ^

( main keyboard )

code       | \x1b \x29 | ^)
backspace  | \x08      |
tab        | \x09      |
abbrev     | \x1b \x2f | ^/
return     | \x0d      |

( arrow keys cluster)

insert      | \x1b \x49 | ^I
delete      | \x1b \x5b | ^[
up arrow    | \x1b \x41 | ^A
down arrow  | \x1b \x42 | ^B
left arrow  | \x1b \x44 | ^D
right arrow | \x1b \x43 | ^C
home        | \x1b \x48 | ^H

( key cluster next to arrow keys)

search     | \x1b \x34 | ^4
replace    | \x1b \x45 | ^E
auto       | \x1b \x4e | ^N
copy       | \x1b \x57 | ^W
move       | \x1b \x68 | ^h
command    | \x1b \x3c | ^<
go to page | \x1b \x78 | ^x
blank1     | \x1b \x7b | ^{
blank2     | \x1b \x7d | ^}


----------------------------------------------------------------
 John Sennesael 2021 ; email me if you know more about these!
 john@adminking.com
----------------------------------------------------------------