;
;       SYNTHESE VOCALE
;       ---------------
;
; By Bertrand CLERGEOT(1984)
; ZX81+CARTE synthèse vocale VTR.
; Ordi-5 n09
;

ORG +16514

;*******************
;* CLERGEOT (C) 84 *
;*******************
;    CARTE VTR DE
;  SYNTHESE  VOCALE
;---------------
@INI
       LD A,+128
       OUT +63,A
@RECHE 
       LD HL,(+16400)
@RE1 
       LD A,(4025)
       SUB 7F
       RET Z
       LD A,(HL)
       CP "V"
       INC HL
       JP NZ RE1
       LD A,(HL)
       CP "O"
       INC HL
       JP NZ RE1
       LD A,(HL)
       CP "C"
       JP NZ RE1
       INC HL
@PHONE
       INC HL
       LD A,(HL)
       LD B,A
       CP "A"
       JP Z LAB1
       CP "O"
       JP Z LAB2
       CP "/"
       JP Z LAB3
       CP "E"
       JP Z LAB4
       CP "I"
       JP Z LAB5
       CP "Y"
       JP Z LAB6
       CP "R"
       JP Z LAB7
       CP "L"
       JP Z LAB8
       CP "V"
       JP Z LAB9
       CP "T"
       JP Z LA10
       CP "Z"
       JP Z LA11
       CP "J"
       JP Z LA12
       CP "F"
       JP Z LA13
       CP "S"
       JP Z LA14
       CP "C"
       JP Z LA15
       CP "K"
       JP Z LA16
       CP "H"
       JP Z LA17
       CP "B"
       JP Z LA18
       CP "D"
       JP Z LA19
       CP "G"
       JP Z LA20
       CP "P"
       JP Z LA21
       CP "M"
       JP Z LA22
       CP "N"
       JP Z LA23
       CP "$"
       JP Z LA24
       JP ARTIC
@LAB1        
       CALL LAB01
       CALL TIME
       JP COMP
@LAB01 
       INC HL
       LD A,(HL)
       CP ","
       JP Z SLA
       INC HL
       CP "+" 
       JP Z SLAP
       CP "I"
       JP Z SLAI
       CP "U"
       JP Z SLAU
@SLAN   
       LD A,+23
       OUT +63,A
       RET
@SLAP  
       LD A,+59
       OUT +63,A
       RET
@SLAI  
       LD A,(HL)
       CP "L"
       JP Z SLAIL
       LD A,+7
       OUT +63,A
       RET
@SLAIL 
       LD A,+6
       OUT +63,A
       RET
@SLA   
       LD A,+26
       OUT +63,A
       RET
@SLAU   
       LD A,+53
       OUT +63,A
       RET
@LAB2   
       CALL LAB02
       CALL TIME
       JP COMP
@LAB02  
       INC HL
       LD A,(HL)
       CP ","
       JP Z SLO
       INC HL
       CP "U"
       JP Z SLOU
       CP "R"
       JP Z SLOP
@SLOI   
       LD A,+5
       OUT +63,A
       RET
@SLO    
       LD A,+24
       OUT +63,A
       RET
@SLOU   
       LD A,(HL)
       CP "+"
       JP Z SLOU2
@SLOU1  
       LD A,+32
       OUT +63,A
       RET
@SLOU2  
       LD A,+30
       OUT +63,A
       RET
@SLOP   
       LD A,+58
       OUT +63,A
       RET
@LAB3  
       CALL LAB03
       CALL TIME
       JP COMP
@LAB03 
       INC HL
       LD A,(HL)
       SUB +28
       OUT +63,A
       INC HL
       RET
@LAB4   
       CALL LAB04
       CALL TIME
       JP COMP
@LAB04 
       INC HL
       LD A,(HL)
       CP ","
       JP Z SLE
       CP "U"
       JP Z SLEU
@SLEI   
       LD A,+20
       OUT +63,A
       RET
@SLE   
       LD A,+15
       OUT +63,A
       RET
@SLEU  
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLEUP
       LD A,+51
       OUT +63,A
       RET
@SLEUP  
       LD A,+52
       OUT +63,A
       RET
@LAB5   
       CALL LAB05
       CALL TIME
       JP COMP
@LAB05  
       INC HL
       LD A,(HL)
       CP ","
       JP Z SLI
       CP "+"
       JP Z SLII
       CP "O"
       JP Z SLIOU
@SLILL  
       LD A,+25
       OUT +63,A
       RET
@SLII   
       LD A,+19
       OUT +63,A
       RET
@SLIOU  
       LD A,+22
       OUT +63,A
       RET
@SLI    
       LD A,+12
       OUT +63,A
       RET
@LAB6   
       LD A,+49
       OUT +63,A
       CALL TIME
       JP COMP
@LAB7   
       CALL LAB07
       CALL TIME
       JP COMP
@LAB07 
       INC HL
       LD A,(HL)
       CP "1"
       JP Z SLR2
       CP "2"
       JP Z SLR3
@SLR3  
       LD A,+39
       OUT +63,A
       RET
@SLR2  
       LD A,+14
       OUT +63,A
       RET
@SLR1   
       LD A,+60
       OUT +63,A
       RET
@LAB8   
       CALL LAB08
       CALL TIME
       JP COMP
@LAB08 
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLLP
@SLL    
       LD A,+45
       OUT +63,A
       RET
@SLLP   
       LD A,+62
       OUT +63,A
       RET
@LAB9  
       LD A,+35
       OUT +63,A
       CALL TIME
       JP COMP
@LA10  
       CALL LA010
       CALL TIME
       JP COMP
@LA010  
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLTP
       CP "H"
       JP Z SLTH
       CP "C"
       JP Z SLTCH
@SLT    
       LD A,+17
       OUT +63,A
       RET
@SLTP  
       LD A,+13
       OUT +63,A
       RET
@SLTH  
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLTHP
       LD A,+29
       OUT +63,A
       RET
@SLTHP 
       LD A,+18
       OUT +63,A
       RET
@SLTCH  
       LD A,+50
       OUT +63,A
       RET
@LA11   
       LD A,+43
       OUT +63,A
       CALL TIME
       JP COMP
@LA12   
       LD A,+38
       OUT +63,A
       CALL TIME
       JP COMP
@LA13  
       LD A,+40
       OUT +63,A
       CALL TIME
       JP COMP
@LA14  
       LD A,+55
       OUT +63,A
       CALL TIME
       JP COMP
@LA15   
       CALL LA015
       CALL TIME
       JP COMP
@LA015 
       INC HL
       LD A,(HL)
       CP ","
       JP Z SLC
@SLCH   
       LD A,+37
       OUT +63,A
       RET
@SLC    
       LD A,+42
       OUT +63,A
       RET
@LA16  
       LD A,+41
       OUT +63,A
       CALL TIME
       JP COMP
@LA17  
       LD A,+57
       OUT +63,A
       CALL TIME
       JP COMP
@LA18   
       CALL LA018
       CALL TIME
       JP COMP
@LA018 
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLBP
@SLB  
       LD A,+63
       OUT +63,A
       RET
@SLBP  
       LD A,+28
       OUT +63,A
       RET
@LA19  
       CALL LA019
       CALL TIME
       JP COMP
@LA019 
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLDP
       CP "J"
       JP Z SLDJ
@SLD   
       LD A,+21
       OUT +63,A
       RET
@SLDP  
       LD A,+33
       OUT +63,A
       RET
@SLDJ  
       LD A,+10
       OUT +63,A
       RET
@LA20   
       CALL LA020
       CALL TIME
       JP COMP
@LA020 
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLGP
       LD A,+61
       OUT +63,A
       RET
@SLGP   
       LD A,+36
       OUT +63,A
       RET
@LA21  
       LD A,+9
       OUT +63,A
       CALL TIME
       JP COMP
@LA22 
       LD A,+16
       OUT +63,A
       CALL TIME
       JP COMP
@LA23 
       CALL LA023
       CALL TIME
       JP COMP
@LA023  
       INC HL
       LD A,(HL)
       CP "+"
       JP Z SLNP
       LD A,+11
       OUT +63,A
       RET
@SLNP  
       LD A,+56
       OUT +63,A
       RET
@LA24  
       INC HL
       LD A,(HL)
       SUB +28
       LD B,A
       ADD A,A
       ADD A,A
       ADD A,A
       ADD A,B
       ADD A,B
       LD B,A
       INC HL
       LD A,(HL)
       SUB +28
       ADD A,B
       OUT +63,A
       CALL TIME
       JP COMP
@COMP  
       LD A,(HL)
       CP ","       
       JP Z PHONE
       CP ";"       
       JP Z ARTIC
       LD A,(4025)
       CP 7F
       RET Z
       INC HL
       JP COMP
@TIME 
       IN A,+63       
       CP +254
       JP Z TIME
       RET
@ARTIC 
       LD A,0
       OUT +63,A
       RET
