
        declare 
                opt$mod(19) structure(modifier(8) byte)
                   data(1,1,1,0,0,0,0,0,                /* 0 access */
                        1,1,1,0,0,0,0,0,                /* 1 archive */
                        1,1,1,0,0,0,0,0,                /* 2 create */
                        1,0,0,0,0,0,0,1,                /* 3 default */
                        0,0,0,0,0,0,0,0,                /* 4 directory */
                        1,1,1,0,0,0,0,0,                /* 5 f1 */
                        1,1,1,0,0,0,0,0,
                        1,1,1,0,0,0,0,0,
                        1,1,1,0,0,0,0,0,
                        1,0,0,0,0,0,0,1,                /* 9 name */
                        1,0,0,0,0,0,0,1,                /* 10 password */
                        1,1,1,1,1,1,1,0,                /* 11 protect */
                        0,0,0,0,0,0,0,0,                /* 12 ro        */
                        0,0,0,0,0,0,0,0,                /* 13 rw        */
                        0,0,0,0,0,0,0,0,                /* 14 sys       */
                        1,1,1,0,0,0,0,0,                /* 15 update */
                        0,0,0,0,0,0,0,0,                /* 16 page */
                        0,0,0,0,0,0,0,0),               /* 17 nopage */

                options(*) byte
                        data('ACCESS0ARCHIVE0CREATE0DEFAULT0DIR0F10F20F30F40',
                             'NAME0PASSWORD0PROTECT0RO0RW0SYS',
                             '0UPDATE0PAGE0NOPAGE',0ffh),
                off$opt(20) byte data(0,7,15,22,30,34,37,40,43,46,51,60,68,71,
                                      74,78,85,90,96),
                mods(*) byte
                        data('OFF0ON0READ0WRITE0DELETE0NONE',0ffh),
                off$mods(7) byte data(0,4,7,12,18,25,29),

                end$list        byte data (0ffh),
                end$of$string   byte data(0),

                delimiters(*) byte data (0,'[]=, :;<>%\|"()/#!@&+-*?',0,0ffh),
                SPACE         byte data (5),    /* index in delim to space */
                RBRACKET      byte data(2),     /* ] in delim */
                ENDFF         byte data(25),
                EQUAL         byte data (3),
                LBRACKET      byte data (1),

                option$map(19)  byte,
                mods$map(19)    byte;

        declare
                sfamsg          byte initial(false),
                drvmsg          byte initial(false),
                j               byte initial(0),
                string$ptr      address,
                defpass         address,
                labname         address,
                passname        address,
                lendef          byte,
                lenpass         byte,
                lenlab          byte,
                buf$ptr         address,
                index           byte,
                endbuf          byte,
                mindex          byte,
                delimiter       byte;
$ eject

