Overview
Principes
Overview
  Altair-Duino
  
PanelMode

PanelMode add-on for

Altair-Duino
Copyright (C) 2017 David Hansel

Running on Chris Davis'
Hardware kit

 

The Altair Duino is an Arduino-based simulator of the legendary MITS Altair 8800.

I had the idea to use the panel (just it's LEDs and switches) of the Altair-Duino as display and for input,
controlled by other devices via the serial interface: "PanelMode".

Additional the're some "blinking lights" or demo programs,
simply started by specific switch constellations while powering up: "PanelApps".
.



The add-ons run early before the original software starts and don't interfere the Altair functionality.

To include these functions it's necessary to add some files to David Hansel's original Altair8800 sourcecode and to modify his Atair8800.ino slightly, then compile and upload to the Arduino Due.


Download:

Add-on files   (with a lot of remarks)
Arduino source   (complete icl. all files)
Compiled binary

 

 

1. Start PanelMode:

Power-up while switch [A15] up (on), but [A0], [A9] and [A8] down (off).
LED < INTE >:  during check switches for PanelMode

Input/Output:
default: USB (programming) port
Switch [A14] (on):   WiFi/Bluetooth module (Rx1/Tx1)
Switch [A13] (on):   RS232 (Rx2/Tx2)
Switch [A12] (on):   onboard LED (Rx3/Tx3)
Serial parameter: 19200-8-1

LEDs:
< INTE > & < WAIT>
 flashing:  waiting for network connection
< A14 >...<A12>:  
active remote control port (see switches)

Panel Mode Command List:

Format
---------------------------------------------------------------
Command (upper case character)

data    (nibbles, ASCII lower case):
        aaaa  address LEDs
        dd    data LEDs
        sss   status LEDs
        tttt  status toggle-switches
        kkkk  status keys
        pppp  PanelApp (4 parameters)
          

 

Port -> ALTAIR-DUINO (command)
---------------------------------------------------------------

Aaaaa      Set adr-LEDs (4 nibbles)
Ddd        Set data-LEDs
Ssss       Set status-LEDs
Laaaaddsss Set all LEDs
Ppppp      Start PanelApp
Thhmm      Set time
+          Set all LEDs
-          Clear all LEDs
#          Poll switches and keys (STOP...AUX)
*          Auto KeyChange Tx on

I Initialize (C/E, W, * off)
E Echo on
C Command acknowledge
W Watchdog on (WAIT flashing)
Q Quit Panel Mode

(<LF>) (optional command termiator, but not necessary!)



ALTAIR-Duino -> Port (returned data)
--------------------------------------------------------------
After "Initalisation": valid command character only

"Echo on": echo characters until command detected

Return after valid command, when "Command acknowledge" active:
(<LF>)dd<LF>
(<LF>)sss<LF>
(<LF>)aaaa<LF>
(<LF>)aaaaddsss<LF>

Return key status after polling command("#"):
(<LF>)ttttkkkk<LF>   
also immediately, when "Auto KeyChange tx" active and toggles/keys changed

 

2.0. Remote start PanelApps from PanelMode

P0000 remote start like power-on (see 2.1.)
Pp000 remote starts the PanelApp p, but uses switches for parameters (2*)...(4*)
Ppppp remote starts a PanelApp with all parameters, ignores switches.

The charcter "X" via serial port returns to PanelMode.

 

2.1. Power-on start PanelApps

Power on while switch [A5] up (on), but [A11], [A10] and/or [A9] up (on), (*1):
LED < PROT> flashing

_ _ x (1) Counter/Clock
_ x _ (2) Random
_ x x (3) Random block
x _ _ (4) Processor simulation
x _ x (5) Analog animation
x x x (7) Key test

[CLR] resets the active PanelApp

 

 

3. List of PanelApps available:

3.1. Counter/Clock:

Mode: [A8], [A7], [A6]   (*2):
_ ...(0-3) speed depends on [A6]...[A0]
x ... (4) sec counter (@ 1s)
x x _ (6) clock min:sec
x x x (7) clock hour:min

Display: [A5], [A4], [A3]   (*3):
_ _ _ (0) Binary display
_ _ x (1) clock bars
_ x _
(2) binary bars
x _ _ (4) BCD binary display
x x _ (6) decimal bars

Option: [A2], [A1], [A0]   (*4):
x _ . (4) (BCD) marker
x x . (6) (BCD) marker bright
. . x (1) 1/10 Sec bar
. x . (2) Tx LEDs


[STOP] stops: <WAIT> is flashing
[RUN]
  starts
[CLR]    resets to zero
[AUX1] down/up: fast set
[AUX2] down/up: set:


3.2./3.3. Random:

Speed depends on [A8]...[A0] resp. (*2)...(*4)



3.4. Processor Simulation:

Speed depends on [A8]...[A0] resp. (*2)...(*4)

 

3.5. Analog animation mode:

Mode: [A8], [A7], [A6]   (*2):
_ . .  (0)  running band
_ . x (+1)  -"- left-to-right
_ x . (+2)  -"- also data LEDs
x _ .  (4)  running dot
x _ x  (5)  -"- left-to-right
x x _  (6)  random block
x x x  (7)  all random

Animation speed depends on [A5]... [A3]   (*3)
Dim/bright speed
depends on [A2]... [A0]   (*4)

 

3.7. Switch & key test:

LEDs following switches resp. keys

 

 

4. Exit PanelApps

[RESET] restarts PanelApp
Charcter 'X' via serial port returns to PanelMode.

 

 

5. PanelApp Examples

5.1. Clock bars hh:mm

Clock bars is an easy-to-read semi-analog clock display with two rows of 6 LEDs.
The Data LEDs display the hours in 0...12:
     [D5][D4][D3] [D2][D1][D0]
00:
01:                        *
02:                    *   *
03:                *   *   *   
...
05:        *   *   *   *   *
06:    *   *   *   *   *   *
07:    *   *   *   *   *
...
09:    *   *   *   
10:    *   *
11:    *
The lower Adr LEDs similar display the mins in 5 to 5 steps:
     [A5][A4][A3] [A2][A1][A0]
:00
:05                        *
:10                    *   *
:15                *   *   *   
...
:45    *   *   *   
:50    *   *
:55    *
The upper Adr LEDs [A13][A12] [A13][A10] count the left mins to 5.
<INTE> flashes slowly and the status LEDs jump (if activated) in 6-s-steps for 1 min.


Example: <D5...D0> 04: <A5...A0> :40 <A13...A10> +2:  4:42 (~18 sec), Marker on

Use [AUX] up/down to set time.


Start at 16:42 from PanelMode:
Command  T1642  Set time to 16:42
Command  P1717  start Clock bars with bright LED markers and 10/60 display:

Start at 00:00 (12:00) from power-up:
[A15] [A14][A13][A12] [A11][A10][A 9] [A 8][A 7][A 6] [A 5][A 4][A 3] [A 2][A 1][A 0]
  x     _    _    _     _    _    x     x    x    x     _    x    x     x    x    x

 

5.2. Very slow random led changing:

Start from PanelMode:
Command  P2777

Start from power-up:
[A15] [A14][A13][A12] [A11][A10][A 9] [A 8][A 7][A 6] [A 5][A 4][A 3] [A 2][A 1][A 0]
  x     _    _    _     _    x    _     x    x    x     x    x    x     x    x    x

 

5.4. Fast Processor simulation:

Emulates the ALTAIR behaviour when running (useless) random program code:

[@@]

Start from PanelMode:
Command  P4001  

Start from power-up:
[A15] [A14][A13][A12] [A11][A10][A 9] [A 8][A 7][A 6] [A 5][A 4][A 3] [A 2][A 1][A 0]
  x     _    _    _     x    _    _     _    _    _     _    _    _     _    _    x


5.5. Analog animation:

On original ALTAIR impossible! Smooth right-to-left running bands (looks better in reality):

[@@]

Start from PanelMode:
Command  P5201

Start from power-up:
[A15] [A14][A13][A12] [A11][A10][A 9] [A 8][A 7][A 6] [A 5][A 4][A 3] [A 2][A 1][A 0]
  x     _    _    _     x    _    x     _    x    _     _    _    _     _    _    _

 

 

 

:

 

PanelMode & PanelApps
Copyright (c) 2021 Ralf Lampe www.erel.de/Projekte/Altair

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Maybe there are bugs left in the program
and there's no warranty for full functionality

21.11.2021