The following DSM code fragment in RPG will create this menu bar: Job1 Proc ICD9 Drug ----------------------
D Major DS D 5I 0 inz(%size(Major)) length D 1A inz(X'D9') class D 1A inz(X'50') type D 3A inz(X'060C00') flags D 1A inz(X'01') menu bar D 3A inz(X'F1F2F3') GUI/NWS device D 2A inz(*loval) reserved D 1A inz(X'06') choice text size D 1A inz(X'01') number of rows D 1A inz(X'04') number of columns D 1A inz(X'02') pad length between D 1A inz(*loval) numeric seperator D 1A inz('/') selection character D 1A inz(*loval) mouse pull-down AID D Colors DS D 1A inz(X'0F') length D 1A inz(X'01') type D 1A inz(X'E0') flags D 2A inz(X'2323') color if available D 2A inz(X'2323') color if selected D 2A inz(*loval) color if unavailable D 2A inz(X'3838') color if available D 2A inz(X'2323') color if unavailable D 2A inz(*loval) color if selected D Choice1 DS D 1A inz(X'0A') length D 1A inz(X'10') type D 3A inz(X'0800E0') flags D 1A inz(X'03') mnemonic offset D 4A inz('Job1') choice text D Choice2 DS D 1A inz(X'0A') length D 1A inz(X'10') type D 3A inz(X'0800E0') flags D 1A inz(X'00') mnemonic offset D 4A inz('Proc') choice text D Choice3 DS D 1A inz(X'0A') length D 1A inz(X'10') type D 3A inz(X'0800E0') flags D 1A inz(X'00') mnemonic offset D 4A inz('ICD9') choice text D Choice4 DS D 1A inz(X'0A') length D 1A inz(X'10') type D 3A inz(X'0800E0') flags D 1A inz(X'00') mnemonic offset D 4A inz('Drug') choice text D SeperatorLine DS D 1A inz(X'07') length D 1A inz(X'09') type D 1A inz(X'00') flags D 1A inz(X'01') start column D 1A inz(X'50') end column D 2A inz(X'3838') seperator color C callb 'QsnWrtSFMaj' C parm Major C parm MajorLength C parm FieldID C parm Row C parm Column C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm Colors C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm Choice1 C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm Choice2 C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm Choice3 C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm Choice4 C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode C callb 'QsnWrtSFMin' C parm SeperatorLine C parm MinorLength C parm Buffer C parm LowLevel C parm ErrorCode