@@ -675,6 +675,32 @@ static bool SMB_E_LABEL_SET_TYPE(parse &s)
675675 return true ;
676676}
677677
678+ static bool SMB_E_DATA_SET_ROM_SEG (parse &s)
679+ {
680+ s.debug (" E_DATA_SET_ROM_SEG" );
681+ s.skipws ();
682+ s.labels [s.last_label ].set_segment (" CODE" );
683+ return true ;
684+ }
685+
686+ static bool SMB_E_DATA_SET_SEGMENT (parse &s)
687+ {
688+ s.debug (" E_DATA_SET_SEGMENT" );
689+ s.skipws ();
690+ // Get segment name
691+ std::string seg;
692+ if (s.get_ident (seg))
693+ {
694+ s.labels [s.last_label ].set_segment (seg);
695+ return true ;
696+ }
697+ else
698+ {
699+ s.error (" segment name" );
700+ return false ;
701+ }
702+ }
703+
678704// Reads a DATA array from a file
679705static bool SMB_E_DATA_FILE (parse &s)
680706{
@@ -714,6 +740,8 @@ static std::map<std::string, bool (*)(parse &s)> actions = {
714740 {" E_LABEL_CREATE" , SMB_E_LABEL_CREATE},
715741 {" E_LABEL_DEF" , SMB_E_LABEL_DEF},
716742 {" E_LABEL_SET_TYPE" , SMB_E_LABEL_SET_TYPE},
743+ {" E_DATA_SET_ROM_SEG" , SMB_E_DATA_SET_ROM_SEG},
744+ {" E_DATA_SET_SEGMENT" , SMB_E_DATA_SET_SEGMENT},
717745 {" E_NUMBER_BYTE" , SMB_E_NUMBER_BYTE},
718746 {" E_NUMBER_FP" , SMB_E_NUMBER_FP},
719747 {" E_NUMBER_WORD" , SMB_E_NUMBER_WORD},
0 commit comments