;
; VOTRAX CROSS-COMPILER FOR ASCII TO VOICE PHONEMES
;
; ORIGINALLY WRITTEN AND RELEASED IN PUBLIC DOMAIN
; 9/22/81 BY ALAN JEWER, SHAWN EVERSON & WILLIAM WHITFORD
;
;
; MACR@ (MACRO) @DRIVER
;
; THE @DRIVER MACRO IS INCLUDED AT THE START OF THE
; VOICE PROGRAM, AND PROVIDES DRIVE TO THE SWEET TALKER
; SPEECH BOARD  THRU AN 8255 PROGRAMMABLE PARALLEL
; INTERFACE CHIP. ANY OTHER BOARD USING THE VOTRAX SC-01
; VOICE SYNTHESIS CHIP SHOULD BE ABLE TO BE SUPPORTED
; BY ONLY SMALL CHANGES TO THE DRIVER PROGRAM.
; WHEN USING THIS MACRO, A .COM FILE (MACHINE CODE)
; IS PRODUCED WHICH IS DIRECTLY EXECUTABLE AS A CP/M
; TRANSIENT. THIS DRIVER CONSISTS OF Z80 CODE, AND
; WILL NOT RUN ON AN 8080. THE MACRO @QUIT MUST BE USED
; AT THE END OF THE VOICE PROGRAM TO PROVIDE AND
; END-OF-FILE INDICATION. THE INVOKING SYNTAX IS:
;
;                       @DRIVER @FINISH
;
;                       BODY
;                       OF
;                       SPEECH
;                       PROGRAM
;
;                       @QUIT
;
@DRIVER MACR@   @FINISH
       I8255   EQU     24H     ;LOCATION OF THE 8255 I/O CHIP
       IDATA   EQU     I8255   ;DATA OUTPUT PORT
       ISTROBE EQU     I8255+1 ;STROBE OUTPUT PORT
       IREADY  EQU     I8255+2 ;READY STATUS LINE INPUT PORT
       ISETUP  EQU     I8255+3 ;SETUP PORT FOR 8255
       ICONFIG EQU     89H     ;A&B OUTPUT, C IS INPUT
       STBON   EQU     255     ;STROBE ACTIVE
       STBOFF  EQU     000     ;STROBE INACTIVE
;
; THE 8255 BASE PORT (PORT A) IS THE DATA OUTPUT PORT
; THE B PORT LSB IS USED AS THE STROBE OUTPUT LINE
; THE C PORT LSB IS USED AS THE READY INPUT LINE
;
       DB 3EH,ICONFIG          ;MVI A,ICONFIG  ;SET UP 8255
       DB 0D3H,ISETUP          ;OUT ISETUP
       DB 3EH,STBOFF           ;MVI A,STBOFF   ;SET STROBE POLARITY
       DB 0D3H,ISTROBE         ;OUT ISTROBE
       DB 0AFH                 ;XRA A          ;CLEAR INFLECTION
       DB 32H                  ;STA INFLECT    ;THIS IS STORAGE
       DW INFL
       DB 21H                  ;LXI H,@START   ;BUFFER POINTER
       DW @START
       DB 11H                  ;LXI D,@FINISH-@START ;COUNTER
       DW @FINISH-@START
       DB 0EH,IDATA            ;MVI C,IDATA    ;OUTPUT PORT ADDR
DMPLP:  DB 3EH,3FH              ;MVI A,3FH      ;PHONEMES ARE SMALLER
       DB 0BEH                 ;CMP M          ;IS PHONEME?
       DB 30H,DMPIT-$-1        ;JRNC DMPIT     ;JUMP IF IT IS
       DB 7EH                  ;MOV A,M        ;GET INFLECTION
       DB 0FEH,0FFH            ;CPI 0FFH       ;IS IT PITCH 0?
       DB 20H,NOT0-$-1         ;JRNZ NOT0      ;JUMP IF NOT
       DB 0AFH                 ;XRA A          ;GET 0 FOR PITCH 0
NOT0:   DB 32H                  ;STA INFLECT    ;STORE IT
       DW INFL
       DB 23H                  ;INX H          ;BUMP RAM POINTER
       DB 18H,CNTEM-$-1        ;JMPR COUNTEM   ;CONTINUE TILL DONE
DMPIT:  DB 3AH                  ;LDA INFL       ;GET INFLECTION
       DW INFL
       DB 86H                  ;ADD M          ;ADD PHONEME
       DB 77H                  ;MOV M,A        ;CRUDE, BUT EFFECTIVE
       DB 2FH                  ;CMA            ;FLIP FOR LIGHTS
       DB 0D3H,0FFH            ;OUT FPANEL     ;ON THE LIGHTS
       DB 0EDH,0A3H            ;OUTI           ;NEXT BYTE TO OUTPUT
       DB 3EH,STBON            ;MVI A,STBON    ;TURN ON STROBE
       DB 0D3H,ISTROBE         ;OUT ISTROBE
       DB 06H,1EH              ;MVI B,30       ;WAIT FOR 100 US
STLOOP: DB 10H,STLOOP-$-1       ;DJNZ STLOOP    ;LOOP TILL TIME UP
       DB 3EH,STBOFF           ;MVI A,STBOFF   ;TURN OFF STROBE
       DB 0D3H,ISTROBE         ;OUT ISTROBE
WFOR:   DB 0DBH,IREADY          ;IN IREADY      ;GET READY BIT
       DB 1FH                  ;RAR            ;TO CY
       DB 30H,WFOR-$-1         ;JRNC WAITFOR   ;WAIT FOR VOTRAX
CNTEM:  DB 1BH                  ;DCX D          ;COUNT BYTE
       DB 7AH                  ;MOV A,D        ;CHECK FOR 0
       DB 0B3H                 ;ORA E
       DB 20H,DMPLP-$-1        ;JRNZ DMPLOOP   ;LOOP TILL ALL DONE
       DB 0C9H                 ;RET            ;BACK TO CP/M
INFL:   DB 0                    ;INFLECTION STORAGE
@START:
       ENDM
;
@QUIT   MACR@
       DB 3FH  ;;SHUT UP
@FINISH:
       ENDM
;;
PITCH0  MACR@
       DB 0FFH ;;LOWEST PITCH
       ENDM
PITCH1  MACR@
       DB 40H  ;;2ND PITCH
       ENDM
PITCH2  MACR@
       DB 080H ;;3RD PITCH
       ENDM
PITCH3  MACR@
       DB 0C0H ;;HIGHEST PITCH
       ENDM
;
;; FIRST WE DEFINE THE PHONEMES
;;
EH3     EQU 00H ;;59 MS ;JACK/E/T
EH2     EQU 01H ;;71 MS ;/E/NLIST
EH1     EQU 02H ;;121MS ;H/EA/VY
PA0     EQU 03H ;;47 MS ;NO SOUND
DT      EQU 04H ;;47 MS ;BU/TT/ER
A2      EQU 05H ;;71 MS ;M/A/DE
A1      EQU 06H ;;103MS ;M/A/DE
ZH      EQU 07H ;;90 MS ;A/Z/URE
AH2     EQU 08H ;;71 MS ;H/O/NEST
I3      EQU 09H ;;55 MS ;INHIB/I/T
I2      EQU 0AH ;;80 MS ;/I/NHIBIT
I1      EQU 0BH ;;121MS ;INH/I/BIT
@M      EQU 0CH ;;103MS ;/M/AT
@N      EQU 0DH ;;80 MS ;SU/N/
@B      EQU 0EH ;;71 MS ;/B/AG
@V      EQU 0FH ;;71 MS ;/V/AN
CH      EQU 10H ;;71 MS ;/CH/IP
                       ;;/T/ MUST PRECEDE /J/
                       ;;TO PRODUCE CH SOUND
SH      EQU 11H ;;121MS ;/SH/OP
@Z      EQU 12H ;;71 MS ;/Z/OO
AW1     EQU 13H ;;146MS ;L/AW/FUL
NG      EQU 14H ;;121MS ;THI/NG/
AH1     EQU 15H ;;146MS ;F/A/THER
OO1     EQU 16H ;;103MS ;L/OO/KING
OO      EQU 17H ;;185MS ;B/OO/K
@L      EQU 18H ;;103MS ;/L/AND
@K      EQU 19H ;;80 MS ;TRI/CK/
@J      EQU 1AH ;;47 MS ;/J/U/DG/E
                       ;;/D/ MUST PRECEDE /J/ TO PRODUCE
                       ;;J SOUND
@H      EQU 1BH ;;71 MS ;/H/ELLO
@G      EQU 1CH ;;71 MS ;/G/ET
@F      EQU 1DH ;;103MS ;/F/AST
@D      EQU 1EH ;;55 MS ;PAI/D/
@S      EQU 1FH ;;90 MS ;PA/SS/
@A      EQU 20H ;;185MS ;D/AY/
AY      EQU 21H ;;65 MS ;D/AY/
Y1      EQU 22H ;;80 MS ;/Y/ARD
UH3     EQU 23H ;;47 MS ;MISS/IO/N
AH      EQU 24H ;;250MS ;M/O/P
@P      EQU 25H ;;103MS ;P/A/ST
@O      EQU 26H ;;185MS ;C/O/LD
@I      EQU 27H ;;185MS ;P/I/N
@U      EQU 28H ;;185MS ;M/O/VE
@Y      EQU 29H ;;103MS ;AN/Y/
@T      EQU 2AH ;;71 MS ;/T/AP
@R      EQU 2BH ;;90 MS ;/R/ED
@E      EQU 2CH ;;185MS ;M/EE/T
@W      EQU 2DH ;;80 MS ;/W/IN
AE      EQU 2EH ;;185MS ;D/A/D
AE1     EQU 2FH ;;103MS ;/A/FTER
AW2     EQU 30H ;;90 MS ;S/A/LTY
UH2     EQU 31H ;;71 MS ;/A/BOUT
UH1     EQU 32H ;;103MS ;/U/NCLE
UH      EQU 33H ;;185MS ;C/U/P
O2      EQU 34H ;;80 MS ;F/O/R
O1      EQU 35H ;;121MS ;AB/OA/RD
IU      EQU 36H ;;59 MS ;Y/OU/
U1      EQU 37H ;;90 MS ;Y/OU/
THV     EQU 38H ;;80 MS ;/TH/E
TH      EQU 39H ;;71 MS ;/TH/IN
ER      EQU 3AH ;;146MS ;B/I/RD
EH      EQU 3BH ;;185MS ;G/E/T
E1      EQU 3CH ;;121MS ;B/E/
AW      EQU 3DH ;;250MS ;C/A/LL
PA1     EQU 3EH ;;185MS ;NO SOUND
@STOP   EQU 3FH ;;47 MS ;NO SOUND
;;
;;
;; THE FOLLOWING LETTERS AND WORDS FORM THE
;; LIBRARY OF WORDS WHICH IS USED TO ASSEMBLE
;; OBJECT FILES FROM SOURCE FILES.
;;
;; THE LIST OF WORDS IN THIS LIBRARY IS:
;;
;; A    ABLE ABOUT ACTUAL ADD ADJUST AL ALL ALONE AND
;;
;; B    BACK BASIC BEEN BEFORE BETTER
;;
;; C    CAME CAN CAR CATALOG CHANGE
;;
;; D    DATA DATE DECIDE DECISION DELIVER DID DISK DOCTOR
;;      DOES DONT
;;
;; E    EARLY EITHER ELEVEN EMPTY EXACT
;;
;; F    FACT FAULT FINAL FIRST FOLLOW
;;
;; G    GAME GOOD GREAT GROUND GROW
;;
;; H    HAND HAVE HEAR HEAVY HELLO HIGH HUMAN
;;
;; I    IMPORTANT IN INCLUDE INFORM INSERT INSTEAD IS IT
;;
;; J    JOB JOIN JOY JUDGE JUMP
;;
;; K    KEEP KEY KEYBOARD KILL KNOWLEDGE
;;
;; L    LAB LANGUAGE LARGE LEAVE LEFT LENGTH LESS LISTEN
;;
;; M    MAKE MANY MASTER MATCH ME MEAN MEMORY MESSAGE MISTER
;;      MY
;;
;; N    NAME NATURAL NEAR NEED NEXT NONE
;;
;; O    OBJECT OBSOLETE OFTEN OMIT ON OM ONE OTHER OUT
;;
;; P    PACKAGE PAPER PART PERSON PHONE
;;
;; Q    QUALIFY QUANTITY QUESTION QUICK QUIET
;;
;; R    RAISE REACH REMAIN RESISTOR
;;
;; S    SAFE SAIL SALE SCHEDULE SCRAMBLE SCRAP SECTION SHIT
;;
;; T    TALK TECHNICAL TERMINAL THANK THE THIRTEEN THINK THREE
;;      TIME TO TOUCH TWELVE TWENTY TWO TWAS
;;
;; U    UNDER UNIFORM UNTIL UP URGENT USE UZE
;;
;; V    VACANT VALID VALUE VENDOR VENT VERIFY VARY VIA VICTOR VOICE
;;      VOID VOLT VOLUME
;;
;; W    WAGE WAIT WANT WAS WASH WATER WATT WAVE WAY WE WEAPON WEDNESDAY
;;      WEEK WELCOME WENT WEST WET WHEEL WHEN WHERE WHICH WHILE WHISKEY WHITE
;;      WHO WILL WINDOW WINTER WIRE WITH WITHDRAW WITHOUT WORD WORK
;;      WRONG
;;
;; X    XRAY
;;
;; Y    YANKEE YARD YEAR YELLOW YES YESTERDAY YET YOU YOUR
;;
;; Z    ZAP ZERO ZONE ZULU
;;
;;
A       MACR@
       DB A1,AY,PA1
       ENDM
ABLE    MACR@
       DB A1,@Y,@B,UH3,@L,PA1
       ENDM
ABOUT   MACR@
       DB UH1,@B,UH2,AH2,U1,@T,PA1
       ENDM
ACTUAL  MACR@
       DB AE1,EH3,@K,@T,CH,U1,UH3,@L,PA1
       ENDM
ADD     MACR@
       DB AE1,EH3,@D,PA1
       ENDM
ADJUST  MACR@
       DB UH1,@D,@J,UH1,UH3,@S,@T,PA1
       ENDM
AL      MACR@
       DB AE1,EH3,@L,PA1
       ENDM
ALL     MACR@
       DB AW2,@L,@L,PA1
       ENDM
ALONE   MACR@
       DB UH1,@L,O1,U1,@N,PA1
       ENDM
AND     MACR@
       DB AE1,EH3,@N,@D,PA1
       ENDM
B       MACR@
       DB @B,E1,@Y,PA1
       ENDM
BACK    MACR@
       DB @B,AE1,AE1,@K,PA1
       ENDM
BASIC   MACR@
       DB @B,A1,@Y,@S,I2,@K,PA1
       ENDM
BEEN    MACR@
       DB @B,EH1,EH3,@N,PA1
       ENDM
BEFORE  MACR@
       DB @B,@Y,@F,O2,O2,@R,PA1
       ENDM
BETTER  MACR@
       DB @B,EH1,EH3,@T,ER,PA1
       ENDM
C       MACR@
       DB @S,E1,@Y,PA1
       ENDM
CAME    MACR@
       DB @K,A1,AY,@Y,@M,PA1
       ENDM
CAN     MACR@
       DB @K,AE1,EH3,@N,PA1
       ENDM
CAR     MACR@
       DB @K,AH2,UH3,@R,PA1
       ENDM
CATALOG MACR@
       DB @K,AE1,EH3,DT,UH3,@L,AW2,AW2,@G,PA1
       ENDM
CHANGE  MACR@
       DB @T,CH,A1,AY,@Y,@N,@D,@J,PA1
       ENDM
D       MACR@
       DB @D,E1,@Y,PA1
       ENDM
DATA    MACR@
       DB @D,A2,@Y,DT,UH1,PA1
       ENDM
DATE    MACR@
       DB @D,A2,AY,@Y,@T,PA1
       ENDM
DECIDE  MACR@
       DB @D,@Y,@S,AH2,EH3,@Y,@D,PA1
       ENDM
DECISION MACR@
       DB @D,@Y,@S,I2,ZH,UH3,@N,PA1
       ENDM
DELIVER MACR@
       DB @D,@Y,@L,I2,@V,ER,PA1
       ENDM
DID     MACR@
       DB @D,I1,@D,PA1
       ENDM
DISK    MACR@
       DB @D,I1,@S,@K,PA1
       ENDM
DOCTOR  MACR@
       DB @D,AH,@K,@T,O1,ER,PA0,PA1
       ENDM
DOES    MACR@
       DB @D,UH,@Z,PA1
       ENDM
DONT   MACR@
       DB @D,O1,U1,@N,@T,PA1
       ENDM
E       MACR@
       DB E1,@Y,PA1
       ENDM
EARLY   MACR@
       DB ER,@R,@L,@Y,PA1
       ENDM
EITHER  MACR@
       DB E1,@Y,THV,ER,PA1
       ENDM
ELEVEN  MACR@
       DB,E1,@L,EH1,@V,I1,@N,PA1
       ENDM
EMPTY   MACR@
       DB EH2,EH3,@M,@P,@T,@Y,PA1
       ENDM
EXACT   MACR@
       DB EH2,EH3,@G,PA0,@Z,AE1,EH3,@K,@T,PA1
       ENDM
F       MACR@
       DB EH1,EH2,@F,PA1
       ENDM
FACT    MACR@
       DB @F,AE,EH3,@F,@T,PA1
       ENDM
FAULT   MACR@
       DB @F,AW,@L,@T,PA1
       ENDM
FINAL   MACR@
       DB @F,AH2,@Y,@N,UH3,@L,PA1
       ENDM
FIRST   MACR@
       DB @F,ER,@R,@S,@T,PA1
       ENDM
FOLLOW  MACR@
       DB @F,AH1,AW2,@L,O1,U1,PA1
       ENDM
G       MACR@
       DB @D,@J,E1,@Y,PA1
       ENDM
GAME    MACR@
       DB @G,A2,AY,@Y,@M,PA1
       ENDM
GOOD    MACR@
       DB @G,OO1,OO1,@D,PA1
       ENDM
GREAT   MACR@
       DB @G,@R,A2,@Y,@T,PA1
       ENDM
GROUND  MACR@
       DB @G,@R,AH1,UH3,@W,@N,@D,PA1
       ENDM
GROW    MACR@
       DB @G,@R,O1,U1,PA1
       ENDM
H       MACR@
       DB A1,AY,@Y,@T,CH,PA1
       ENDM
HAND    MACR@
       DB @H,AE1,EH3,@N,@D,PA1
       ENDM
HAVE    MACR@
       DB @H,AE1,EH3,@V,PA1
       ENDM
HEAR    MACR@
       DB @H,AY,I3,@R,PA1
       ENDM
HEAVY   MACR@
       DB @H,EH1,@V,@Y,PA1
       ENDM
HELLO   MACR@
       DB @H,EH1,@L,@L,O1,U1,PA1
       ENDM
HIGH    MACR@
       DB @H,AH1,EH3,@Y,PA1
       ENDM
HUMAN   MACR@
       DB @H,IU,U1,@M,AE1,EH3,@N,PA1
       ENDM
I       MACR@
       DB AH1,EH3,I3,@Y,PA1
       ENDM
IMPORTANT MACR@
       DB I1,I3,@M,@P,O2,O2,@R,@T,EH3,@N,@T,PA1
       ENDM
IN      MACR@
       DB I1,@N,PA1
       ENDM
INCLUDE MACR@
       DB I1,I3,@N,@K,@L,IU,U1,U1,@D,PA1
       ENDM
INFORM  MACR@
       DB I1,I3,@N,@F,O2,O2,@R,@M,PA1
       ENDM
INSERT  MACR@
       DB I1,@N,@S,@R,@R,@T,PA1
       ENDM
INSTEAD MACR@
       DB I1,I3,@N,@S,@T,EH1,EH3,@D,PA1
       ENDM
IS      MACR@
       DB PA1,I1,@Z,PA0,PA1
       ENDM
IT      MACR@
       DB @I,@T,PA1
       ENDM
J       MACR@
       DB @D,@J,EH3,A1,AY,@Y,PA1
       ENDM
JOB     MACR@
       DB @D,@J,AH1,UH3,@B,PA1
       ENDM
JOIN    MACR@
       DB @D,@J,O1,UH3,I3,AY,@N,PA1
       ENDM
JOY     MACR@
       DB @D,@J,O1,UH3,I3,AY,PA1
       ENDM
JUDGE   MACR@
       DB @D,@J,UH1,UH2,@D,@J,PA1
       ENDM
JUMP    MACR@
       DB @D,@J,UH1,UH2,@M,@P,PA1
       ENDM
K       MACR@
       DB @K,EH3,A1,AY,@Y,PA1
       ENDM
KEEP    MACR@
       DB @K,E1,@Y,@P,PA1
       ENDM
KEY     MACR@
       DB @K,E1,@Y,PA1
       ENDM
KEYBOARD MACR@
       DB @K,AY,@Y,@B,O1,O2,@R,@D,PA1
       ENDM
KILL    MACR@
       DB @K,I1,I3,@L,PA1
       ENDM
KNOWLEDGE MACR@
       DB @N,AH1,UH3,@L,I3,@D,@J,PA1
       ENDM
L       MACR@
       DB EH1,EH3,UH3,@L,PA1
       ENDM
LAB     MACR@
       DB @L,AE,@B,PA1
       ENDM
LANGUAGE MACR@
       DB @L,AE1,EH3,NG,@G,@W,I1,@D,@J,PA1
       ENDM
LARGE   MACR@
       DB @L,AH1,@R,@D,@J,PA1
       ENDM
LEAVE   MACR@
       DB @L,E1,@Y,@V,PA1
       ENDM
LEFT    MACR@
       DB @L,EH1,EH3,@F,@T,PA1
       ENDM
LENGTH  MACR@
       DB @L,EH1,EH3,NG,TH,PA1
       ENDM
LESS    MACR@
       DB @L,EH1,EH2,@S,PA1
       ENDM
LISTEN  MACR@
       DB @L,I1,I3,@S,I2,@N,PA1
       ENDM
M       MACR@
       DB EH1,EH2,@M,PA1
       ENDM
MAKE    MACR@
       DB @M,A1,AY,@Y,@K,PA1
       ENDM
MANY    MACR@
       DB @M,EH2,EH2,@N,@Y,PA1
       ENDM
MASTER  MACR@
       DB @M,AE1,EH3,@S,@T,ER,PA1
       ENDM
MATCH   MACR@
       DB @M,AE1,EH3,@T,CH,PA1
       ENDM
ME      MACR@
       DB @M,@E,PA1
       ENDM
MEAN    MACR@
       DB @M,@E,@N,PA1
       ENDM
MEMORY  MACR@
       DB @M,EH1,EH3,@M,ER,@Y,PA1
       ENDM
MESSAGE MACR@
       DB @M,EH1,EH3,@S,I2,@D,@J,PA1
       ENDM
MISTER  MACR@
       DB @M,@I,@S,@T,ER,PA1
       ENDM
MY      MACR@
       DB @M,AH1,EH3,I3,@Y,PA1
       ENDM
N       MACR@
       DB EH1,EH2,@N,PA1
       ENDM
NAME    MACR@
       DB @N,A1,@Y,@M
       ENDM
NATURAL MACR@
       DB @N,AE1,@T,CH,UH3,@R,UH2,@L
       ENDM
NEAR    MACR@
       DB @N,AY,I1,@R,PA1
       ENDM
NEED    MACR@
       DB @N,E1,@Y,@D,PA1
       ENDM
NEXT    MACR@
       DB @N,EH1,EH3,@K,PA0,@S,@T,PA1
       ENDM
NONE    MACR@
       DB @N,UH1,UH3,@N,PA1
       ENDM
O       MACR@
       DB O2,O1,U1,PA1
       ENDM
OBJECT  MACR@
       DB UH1,@B,@D,@J,EH1,EH3,@K,@T,PA1
       ENDM
OBSOLETE MACR@
       DB AH1,UH3,@B,@S,UH3,@L,AY,@Y,@T,PA1
       ENDM
OFTEN   MACR@
       DB AW2,AW2,@F,I3,@N,PA1
       ENDM
OMIT    MACR@
       DB O1,U1,@M,I1,I3,@T,PA1
       ENDM
OM      MACR@
       DB AH,@O,@M,@M,@M,@M,@M,@M,@M,@M,@M,PA1
       ENDM
ON      MACR@
       DB AH,@N,PA1
       ENDM
ONE     MACR@
       DB @W,UH1,I3,@N,PA1
       ENDM
OTHER   MACR@
       DB UH1,UH3,THV,ER,PA1
       ENDM
OUT     MACR@
       DB UH1,AW1,@W,@T,PA1
       ENDM
P       MACR@
       DB @P,E1,@Y,PA1
       ENDM
PACKAGE MACR@
       DB @P,AE1,EH3,@K,I1,@D,@J,PA1
       ENDM
PAPER   MACR@
       DB @P,A1,@Y,@P,ER,PA1
       ENDM
PART    MACR@
       DB @P,AH1,@R,@T,PA1
       ENDM
PERSON  MACR@
       DB @P,ER,@S,UH1,@N,PA1
       ENDM
PHONE   MACR@
       DB @F,O1,U1,@N,PA1
       ENDM
Q       MACR@
       DB @K,Y1,IU,U1,U1,PA1
       ENDM
QUALIFY MACR@
       DB @K,@W,AW1,@L,I1,@F,AH1,EH3,@Y,PA1
       ENDM
QUANTITY MACR@
       DB @K,@W,AH1,@N,@T,I3,@T,@Y,PA1
       ENDM
QUESTION MACR@
       DB @K,@W,EH1,EH3,@S,@T,CH,UH3,@N,PA1
       ENDM
QUICK   MACR@
       DB @K,@W,I1,I3,@K,PA1
       ENDM
QUIET   MACR@
       DB @K,@W,AH1,EH3,AY,I2,@T,PA1
       ENDM
R       MACR@
       DB AH1,UH2,ER,PA1
       ENDM
RAISE   MACR@
       DB @R,A1,AY,@Y,@Z,PA1
       ENDM
REACH   MACR@
       DB @R,E1,@Y,@T,CH,PA1
       ENDM
READY   MACR@
       DB @R,EH1,EH3,@D,@Y,PA1
       ENDM
REMAIN  MACR@
       DB @R,E1,@M,A1,AY,@Y,@N,PA1
       ENDM
RESISTOR MACR@
       DB @R,E1,@Z,I1,@S,@T,ER,PA1
       ENDM
S       MACR@
       DB EH1,EH2,@S,PA1
       ENDM
SAFE    MACR@
       DB @S,A1,AY,@Y,@F,PA1
       ENDM
SAIL    MACR@
       DB @S,A1,A2,AY,UH3,@L,PA1
       ENDM
SALE    MACR@
       DB @S,A1,A2,AY,UH3,@L,PA1
       ENDM
SCHEDULE MACR@
       DB @S,@K,EH1,EH3,@D,@J,IU,U1,@L,PA1
       ENDM
SCRAMBLE MACR@
       DB @S,@K,@R,AE1,EH3,@M,@B,UH1,@L,PA1
       ENDM
SCRAP   MACR@
       DB @S,@K,@R,AE1,EH3,@P,PA1
       ENDM
SECTION MACR@
       DB @S,EH1,EH3,@K,SH,UH3,@N,PA1
       ENDM
SHIT    MACR@
       DB SH,@E,@I,@T,PA0,PA1
       ENDM


T       MACR@
       DB @T,E1,AY,Y,PA1
       ENDM
TALK    MACR@
       DB @T,AW,@K,PA1
       ENDM
TECHNICAL MACR@
       DB @T,EH1,EH3,@K,@N,I3,@K,UH3,@L,PA1
       ENDM
TERMINAL MACR@
       DB @T,ER,@M,EH3,@N,UH2,@L,PA1
       ENDM
THANK   MACR@
       DB PA0,THV,EH,@N,@K,PA1
       ENDM
THE     MACR@
       DB THV,UH1,PA1
       ENDM
THIRTEEN MACR@
       DB TH,UH2,ER,@T,E1,E1,@N,PA0,
       ENDM
THINK   MACR@
       DB TH,I1,I3,NG,@K,PA1
       ENDM
THREE   MACR@
       DB TH,@R,E1,@Y,PA1
       ENDM
TIME    MACR@
       DB @T,AH1,EH3,@Y,@M,PA1
       ENDM
TO      MACR@
       DB @T,PA0,@U,@W,PA1
       ENDM
TOUCH   MACR@
       DB @T,UH2,@T,@J,PA0,PA1
       ENDM

TWELVE  MACR@
       DB @T,PA0,@W,EH2,UH2,@L,@V,PA1
       ENDM
TWENTY  MACR@
       DB @T,PA0,@W,EH2,@N,@T,E1,PA0,PA1
       ENDM
TWO     MACR@
       @T,PA0,@U,@W,PA1
       ENDM
TWAS    MACR@
       DB @T,@W,UH,@S,PA1
       ENDM
U       MACR@
       DB Y1,IU,U1,U1,PA1
       ENDM
UNDER   MACR@
       DB UH2,UH2,@N,@D,ER,PA1
       ENDM
UNIFORM  MACR@
       DB Y1,IU,U1,@N,I3,@F,O1,@R,@M,PA1
       ENDM
UNTIL   MACR@
       DB UH2,UH2,@N,@T,I1,I3,@L,PA1
       ENDM
UP      MACR@
       DB UH1,UH2,@P,PA1
       ENDM
URGENT  MACR@
       DB @R,@R,@D,@J,I3,@N,@T,PA1
       ENDM
USE     MACR@
       DB UH1,UH2,@S,PA1
       ENDM
UZE     MACR@
       DB Y1,IU,U1,U1,@Z,PA1
       ENDM
V       MACR@
       DB @V,E1,AY,@Y,PA1
       ENDM
VACANT  MACR@
       DB @V,A1,@Y,@K,EH3,@N,@T,PA1
       ENDM
VALID   MACR@
       DB @V,AE1,UH3,@L,I1,@D,PA1
       ENDM
VALUE   MACR@
       DB @V,AE1,EH3,@L,Y1,IU,U1,PA1
       ENDM
VENDOR  MACR@
       DB @V,EH1,EH3,@N,@D,ER,PA1
       ENDM
VENT    MACR@
       DB @V,EH1,EH3,@N,@T,PA1
       ENDM
VERIFY  MACR@
       DB @V,EH1,@R,I3,@F,AH1,EH3,@Y,PA1
       ENDM
VARY    MACR@
       DB @V,EH1,@R,@Y,PA1
       ENDM
VIA     MACR@
       DB @V,E1,AY,UH2,UH3,PA1
       ENDM
VICTOR  MACR@
       DB @V,I1,I3,@K,@T,ER,PA1
       ENDM
VOICE   MACR@
       DB @V,O1,UH3,I3,AY,@S,PA1
       ENDM
VOID    MACR@
       DB @V,O1,UH3,I3,AY,@D,PA1
       ENDM
VOLT    MACR@
       DB @V,O2,O2,@L,@T,PA1
       ENDM
VOLUME  MACR@
       DB @V,AH1,UH3,@L,Y1,IU,U1,@M,PA1
       ENDM
W       MACR@
       DB @D,UH1,@B,UH3,@L,Y1,IU,U1,PA1
       ENDM
WAGE    MACR@
       DB @W,A1,AY,@Y,@D,@J,PA1
       ENDM
WAIT    MACR@
       DB @W,A1,AY,@Y,@T,PA1
       ENDM
WANT    MACR@
       DB @W,AH1,UH3,@N,@T,PA1
       ENDM
WAS     MACR@
       DB @W,UH1,UH3,@Z,PA1
       ENDM
WASH    MACR@
       DB @W,AW,SH,PA1
       ENDM
WATER   MACR@
       DB @W,AH1,UH3,@T,ER,PA1
       ENDM
WATT    MACR@
       DB @W,AH1,UH3,@T,PA1
       ENDM
WAVE    MACR@
       DB @W,A1,AY,@Y,@V,PA1
       ENDM
WAY     MACR@
       DB @W,A2,A2,@Y,PA1
       ENDM
WE      MACR@
       DB @W,E1,@Y,PA1
       ENDM
WEAPON  MACR@
       DB @W,EH2,EH2,@P,UH1,N,PA1
       ENDM
WEDNESDAY MACR@

       DB @W,EH1,@N,@Z,@D,A1,I3,@Y,PA1
       ENDM
WEEK    MACR@
       DB @E,E1,@Y,@K,PA1
       ENDM
WELCOME MACR@
       DB @W,EH2,@L,@K,UH1,@M,PA1
       ENDM
WENT    MACR@
       DB @W,EH1,EH3,@N,@T,PA1
       ENDM
WEST    MACR@
       DB @W,EH1,EH3,@S,@T,PA1
       ENDM
WET     MACR@
       DB @W,EH1,EH3,@T,PA1
       ENDM
WHAT    MACR@
       DB @W,UH3,UH1,@T,PA1
       ENDM
WHEEL   MACR@
       DB @W,E1,@Y,@L,PA1
       ENDM
WHEN    MACR@
       DB @W,EH1,EH3,@N,PA1
       ENDM
WHERE   MACR@
       DB @W,EH3,A2,EH3,@R,PA1
       ENDM
WHICH   MACR@
       DB @W,I1,I3,@T,CH,PA1
       ENDM
WHILE   MACR@
       DB @W,AH1,EH3,I1,UH3,@L,PA1
       ENDM
WHISKY  MACR@
       DB @W,I1,I3,@S,@K,AY,@Y,PA1
       ENDM
WHITE   MACR@
       DB @W,UH3,AH2,@Y,@T,PA1
       ENDM
WHO     MACR@
       DB @H,IU,U1,U1,PA1
       ENDM
WILL    MACR@
       DB @W,I1,I3,@L,PA1
       ENDM
WINDOW  MACR@
       DB @W,I1,@N,@D,O1,U1,PA1
       ENDM
WINTER  MACR@
       DB @W,I1,I3,@N,@T,ER,PA1
       ENDM
WIRE    MACR@
       DB @W,AH1,EH3,AY,@R,PA1
       ENDM
WITH    MACR@
       DB @W,I1,I3,TH,PA1
       ENDM
WITHDRAW MACR@
       DB @W,I1,I3,TH,@D,@R,AW,PA1
       ENDM
WITHOUT MACR@
       DB @W,I1,I3,TH,UH2,AH2,U1,@T,PA1
       ENDM
WORD    MACR@
       DB @W,ER,@R,@D,PA1
       ENDM
WORK    MACR@
       DB @W,ER,@R,@K,PA0,PA1
       ENDM
WRONG   MACR@
       DB @R,AW,NG,PA1
       ENDM
X       MACR@
       DB EH1,EH2,@K,PA0,@S,PA1
       ENDM
XRAY    MACR@
       DB EH1,EH2,@K,PA0,@S,@R,A1,I3,@Y,PA1
       ENDM
Y       MACR@
       DB @W,AH1,EH3,I3,@Y,PA1
       ENDM
YANKEE  MACR@
       DB Y1,AE1,EH3,NG,@K,E1,@Y,PA1
       ENDM
YARD    MACR@
       DB Y1,AH1,@R,@D,PA1
       ENDM
YEAR    MACR@
       DB Y1,AY,I3,@R,PA1
       ENDM
YELLOW  MACR@
       DB Y1,EH1,EH3,@L,O1,U1,PA1
       ENDM
YES     MACR@
       DB Y1,EH3,EH1,@S,PA1
       ENDM
YESTERDAY MACR@
       DB Y1,EH3,EH1,@S,@T,ER,@D,A1,I3,@Y,PA1
       ENDM
YET     MACR@
       DB Y1,EH1,EH3,@T,PA1
       ENDM
YOU     MACR@
       DB @Y,IU,U1,U1,PA1
       ENDM
YOUR    MACR@
       DB @Y,O2,O2,@R,PA1
       ENDM
Z       MACR@
       DB @Z,E1,@Y,PA1
       ENDM
ZAP     MACR@
       DB @Z,AE1,EH3,@P,PA1
       ENDM
ZERO    MACR@
       DB @Z,AY,I1,@R,O1,U1,PA1
       ENDM
ZONE    MACR@
       DB @Z,O1,U1,@N,PA1
       ENDM
ZULU    MACR@
       DB @Z,U1,@L,IU,U1,PA1
       ENDM