; AHOJ - 2 sedmisegmentove displeje
; Navrh pro univerzalni textovy kompilator.
; Vyžaduje kompilátor v8.1 s rozšiřováním ISwitch.
; SET ... INn pouziva skutecny index XML pinu (vcetne En).

DEFINE INT A = 119
DEFINE INT H = 116
DEFINE INT O = 92
DEFINE INT J = 30
DEFINE INT SPACE = 0

CALL 8xDO DO1
CALL 8xDI DI1
CALL BoolVar Enable TOGGLE 0 1
CALL OR EnableOr
CALL PulseGen ScrollClock
CALL Counter Position
CALL Comparator EndCheck
CALL ISwitch ScrollLeft
CALL ISwitch ScrollRight
CALL PulseGen MultiplexClock
CALL ISwitch SelectDigit
CALL Int2Bits BusBits
CALL Int2Bits LeftBits
CALL Int2Bits RightBits
CALL Segment LeftDisplay
CALL Segment RightDisplay

; Konstanty prevzate z experimentu zalozeneho na pondeli.pcc
SET ScrollClock.P0 1
SET ScrollClock.P1 1
SET Position.P0 1
SET EndCheck.IN2 6
SET MultiplexClock.P0 1
SET MultiplexClock.P1 1
SET MultiplexClock.IN1 1

; Pro tabulky znaku 11 vstupu (En, index a 9 hodnot).
; v8 musi tyto velikosti nacist z konfigurace, nebo rozsirit.
SET ScrollLeft.IN2 SPACE
SET ScrollLeft.IN3 A
SET ScrollLeft.IN4 H
SET ScrollLeft.IN5 O
SET ScrollLeft.IN6 J
SET ScrollLeft.IN7 SPACE
SET ScrollLeft.IN8 SPACE
SET ScrollLeft.IN9 SPACE
SET ScrollLeft.IN10 SPACE
SET ScrollRight.IN2 A
SET ScrollRight.IN3 H
SET ScrollRight.IN4 O
SET ScrollRight.IN5 J
SET ScrollRight.IN6 SPACE
SET ScrollRight.IN7 SPACE
SET ScrollRight.IN8 SPACE
SET ScrollRight.IN9 SPACE
SET ScrollRight.IN10 SPACE

Enable.Y EnableOr.X0
DI1.OUT0 EnableOr.X1
EnableOr.Y ScrollClock.X0
ScrollClock.OUT1 Position.X0
Position.Y EndCheck.X0
EndCheck.OUT1 Position.X1
Position.Y ScrollLeft.IN1
Position.Y ScrollRight.IN1
MultiplexClock.OUT1 SelectDigit.IN1
ScrollLeft.Y SelectDigit.IN2
ScrollRight.Y SelectDigit.IN3
SelectDigit.Y BusBits.X

; Sedm segmentovych datovych vodicu + prepinani displeje.
BusBits.OUT3 DO1.IN3
BusBits.OUT4 DO1.IN4
BusBits.OUT5 DO1.IN8
BusBits.OUT6 DO1.IN9
MultiplexClock.OUT1 DO1.IN10
BusBits.OUT0 DO1.IN12
BusBits.OUT1 DO1.IN13
BusBits.OUT2 DO1.IN14
EnableOr.Y DO1.IN0

; Dva virtualni segmentove monitory
ScrollLeft.Y LeftBits.X
ScrollRight.Y RightBits.X
LeftBits.OUT0 LeftDisplay.IN1
LeftBits.OUT1 LeftDisplay.IN2
LeftBits.OUT2 LeftDisplay.IN3
LeftBits.OUT3 LeftDisplay.IN4
LeftBits.OUT4 LeftDisplay.IN5
LeftBits.OUT5 LeftDisplay.IN6
LeftBits.OUT6 LeftDisplay.IN7
RightBits.OUT0 RightDisplay.IN1
RightBits.OUT1 RightDisplay.IN2
RightBits.OUT2 RightDisplay.IN3
RightBits.OUT3 RightDisplay.IN4
RightBits.OUT4 RightDisplay.IN5
RightBits.OUT5 RightDisplay.IN6
RightBits.OUT6 RightDisplay.IN7
