Flowcode Project File Parser

Ben Rowland 2019 (C) Matrix TSL


Target Device

PIC.16F.16F1946

Constants

BOOL false     BOOL true    

Globals

BYTE uw2     UNSIGNED INT xr_len     UNSIGNED INT yy1_len     BYTE bb2     SIGNED LONG pp_addr     SIGNED LONG uh_addr     UNSIGNED INT ih_len     UNSIGNED INT tt1_len     UNSIGNED INT ey_len     BYTE uw1     UNSIGNED INT ae_len     BYTE bb1     BYTE zz     UNSIGNED INT nn2_len     UNSIGNED INT er2_len     SIGNED LONG aw_addr     SIGNED LONG er1_addr     UNSIGNED INT ax_len     UNSIGNED INT th_len     UNSIGNED INT ww_len     SIGNED LONG ih_addr     SIGNED LONG rr1_addr     BYTE kk3     UNSIGNED INT pp_len     UNSIGNED INT uw1_len     UNSIGNED INT ao_len     UNSIGNED INT yy2_len     BYTE wh     BYTE yr     UNSIGNED LONG DataSize     SIGNED LONG eh_addr     UNSIGNED INT tt2_len     BYTE kk2     BYTE er2     UNSIGNED LONG Address     SIGNED LONG zz_addr     BYTE kk1     BYTE er1     SIGNED LONG gg3_addr     UNSIGNED INT ay_len     UNSIGNED INT eh_len     BYTE soundplaying     SIGNED LONG ll_addr     BYTE ih     BYTE ey     BYTE ae     UNSIGNED INT uw2_len     UNSIGNED INT ng_len     SIGNED LONG uw1_addr     SIGNED LONG gg1_addr     SIGNED LONG dh2_addr     SIGNED LONG or_addr     SIGNED LONG bb2_addr     BYTE tt2     BYTE gg3     UNSIGNED INT kk1_len     UNSIGNED INT ch_len     BYTE ss     SIGNED LONG kk3_addr     SIGNED LONG dd2_addr     BYTE tt1     UNSIGNED INT bb1_len     BYTE gg2     SIGNED LONG ng_addr     BYTE aa     BYTE gg1     SIGNED LONG th_addr     SIGNED LONG vv_addr     UNSIGNED INT Size     BYTE jh     BYTE rr2     SIGNED LONG mm_addr     SIGNED LONG ao_addr     SIGNED LONG kk1_addr     BYTE rr1     UNSIGNED INT kk2_len     SIGNED LONG tt1_addr     SIGNED LONG hh2_addr     UNSIGNED INT mm_len     BYTE ch     UNSIGNED INT ow_len     UNSIGNED INT bb2_len     UNSIGNED INT ff_len     UNSIGNED INT ar_len     SIGNED LONG yy2_addr     SIGNED LONG nn2_addr     UNSIGNED INT gg1_len     UNSIGNED INT wh_len     BYTE dh2     UNSIGNED INT yr_len     BYTE OutputEnabled     SIGNED LONG oy_addr     UNSIGNED INT kk3_len     HANDLE SoundHandle     UNSIGNED INT jh_len     BYTE dh1     SIGNED LONG ax_addr     SIGNED LONG ww_addr     SIGNED LONG er2_addr     UNSIGNED INT vv_len     BYTE zh     BYTE ll     BYTE nn2     BYTE orr     BYTE nn1     UNSIGNED INT uh_len     SIGNED LONG rr2_addr     SIGNED LONG ow_addr     BYTE oy     BYTE yy2     BYTE sh     UNSIGNED INT gg2_len     BYTE el     SIGNED LONG yr_addr     UNSIGNED INT aa_len     BYTE vv     BYTE yy1     SIGNED LONG wh_addr     UNSIGNED INT oy_len     BYTE mm     UNSIGNED INT hh1_len     UNSIGNED INT sh_len     BYTE ow     UNSIGNED INT el_len     SIGNED LONG sh_addr     UNSIGNED INT dh1_len     SIGNED INT SpeechLength     BYTE ay     BYTE eh     UNSIGNED INT gg3_len     SIGNED LONG zh_addr     SIGNED LONG ss_addr     BYTE ax     BYTE th     BYTE ww     SIGNED LONG uw2_addr     SIGNED LONG gg2_addr     UNSIGNED INT rr1_len     BYTE aw     UNSIGNED INT hh2_len     SIGNED LONG ch_addr     SIGNED LONG ar_addr     BYTE iy     UNSIGNED INT dh2_len     BYTE hh2     SIGNED LONG SpeechAddress     SIGNED LONG ae_addr     BYTE hh1     UNSIGNED INT zz_len     SIGNED LONG jh_addr     SIGNED LONG dh1_addr     SIGNED LONG bb1_addr     UNSIGNED INT dd1_len     UNSIGNED INT ss_len     SIGNED LONG dd1_addr     SIGNED LONG kk2_addr     BYTE uh     UNSIGNED INT zh_len     UNSIGNED INT rr2_len     UNSIGNED INT ll_len     SIGNED LONG tt2_addr     UNSIGNED INT iy_len     BYTE ff     UNSIGNED INT or_len     BYTE ar     SIGNED LONG xr_addr     SIGNED LONG iy_addr     SIGNED LONG ff_addr     UNSIGNED INT nn1_len     BYTE dd2     UNSIGNED INT dd2_len     BYTE ng     UNSIGNED INT er1_len     SIGNED LONG ey_addr     SIGNED LONG aa_addr     SIGNED LONG hh1_addr     BYTE pp     BYTE dd1     BYTE ao     SIGNED LONG ay_addr     SIGNED LONG el_addr     UNSIGNED INT aw_len     BYTE xr     SIGNED LONG nn1_addr     SIGNED LONG yy1_addr    

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Prv_Ph_Select

Return:     VOID

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Stop

Return:     UNSIGNED LONG
Vars:     BYTE test    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

ReadPhonemeLength

Return:     UNSIGNED INT
Params:     STRING Phoneme    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Convert_Data_To_Define

Return:     STRING
Params:     STRING Name     STRING Data     UNSIGNED LONG length     UNSIGNED LONG address    
Vars:     UNSIGNED INT Idx     BYTE Inner_Idx    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Initialise

Return:     UNSIGNED LONG
Vars:     STRING MemSize     UNSIGNED LONG ROM_Size     BYTE test     BYTE index     UNSIGNED LONG VoicePtr     BYTE count     STRING tempstr    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Compile_Start

Return:     UNSIGNED LONG

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_ChipChange

Return:     UNSIGNED LONG
Params:     STRING Target    
Vars:     STRING MemSize     UNSIGNED LONG ROM_Size    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

EnableOutput

Return:     VOID

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Prv_Parse_Wav_Files

Return:     VOID

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Property

Return:     UNSIGNED LONG
Vars:     SIGNED LONG ROM_size     STRING temp_str     UNSIGNED LONG pitchcalc    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_AddVarSize

Return:     UNSIGNED LONG
Params:     STRING VarName     STRING ExpandName     STRING Expansion    
Vars:     BYTE Compare    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

LookupPhoneme

Return:     VOID
Params:     STRING Phoneme    
Vars:     BYTE Compare     STRING Temp_Str    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Renamed

Return:     UNSIGNED LONG
Vars:     STRING Name    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

CopyMemFromPointer

Return:     BYTE
Params:     UNSIGNED LONG VoicePtr    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Prv_Parse_Named_Wav_File

Return:     STRING
Params:     STRING Filename     BYTE Enabled    
Vars:     STRING FilePath     HANDLE FileHandle     BYTE Data     BYTE done     BYTE state     UNSIGNED LONG Idx     UNSIGNED LONG Wav_Length     UNSIGNED INT data_offset     UNSIGNED LONG FileLength    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_AddVar

Return:     UNSIGNED LONG
Params:     STRING VarName     STRING ExpandName     STRING Expansion    
Vars:     BYTE Compare     STRING TestStr2     STRING TestStr3    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

DisableOutput

Return:     VOID
Vars:     BYTE dummy    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

ReadByteFromPhoneme

Return:     BYTE
Params:     STRING Phoneme     UNSIGNED INT Idx    
Vars:     UNSIGNED LONG Address    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

OutputPhoneme

Return:     VOID
Params:     STRING DataString    
Vars:     UNSIGNED INT Idx     BYTE StrLen     STRING teststr     BYTE stridx     UNSIGNED LONG Pending     UNSIGNED LONG Address     BYTE Data     BYTE DatIdx    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Add_Word_To_Library

Return:     UNSIGNED INT
Params:     STRING Word    
Vars:     UNSIGNED INT Idx     STRING CompStr     BYTE LenStr     BYTE found    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Ev_Start

Return:     UNSIGNED LONG
Vars:     BYTE test    

Your browser does not support the HTML5 canvas tag.

Prv_Ph_Select    /    Ev_Stop    /    ReadPhonemeLength    /    Convert_Data_To_Define    /    Ev_Initialise    /    Ev_Compile_Start    /    Ev_ChipChange    /    EnableOutput    /    Prv_Parse_Wav_Files    /    Ev_Property    /    Ev_AddVarSize    /    LookupPhoneme    /    Ev_Renamed    /    CopyMemFromPointer    /    Prv_Parse_Named_Wav_File    /    Ev_AddVar    /    DisableOutput    /    ReadByteFromPhoneme    /    OutputPhoneme    /    Add_Word_To_Library    /    Ev_Start    /    Main

Main

Return:     VOID
Vars:     STRING test    

Your browser does not support the HTML5 canvas tag.

Verison History

Version 0.6
12/09/19 BR - Created initial recursive parser
14/09/19 BR - Added support for disabled icons
18/09/19 BR - Fixed decision icon parsing
19/09/19 BR - Added switch icon support
23/09/19 BR - Fixed recursive loop spacing
27/09/19 BR - Further tweaked spacing and added Macro menu
30/09/19 BR - Improved all string spacing
01/10/19 BR - Improved While icon support