Exemplo n.º 1
0
static void autoexec(void)
{
    struct {
        BYTE reserved[21];
        BYTE attr;
        WORD time;
        WORD date;
        LONG size;
        BYTE name[14];
    } dta;
    WORD err;

    if (kbshift(-1) & MODE_CTRL)        /* check if Control is held down */
        return;

    bootstrap();                        /* try to boot the new OS kernel directly */

    if( ! blkdev_avail(bootdev) )       /* check, if bootdev available */
        return;

    trap1( 0x1a, &dta);                      /* Setdta */
    err = trap1( 0x4e, "\\AUTO\\*.PRG", 7);  /* Fsfirst */
    while(err == 0) {
#ifdef TARGET_PRG
        if (!strncmp(dta.name, "EMUTOS", 6))
        {
            KDEBUG(("Skipping %s from AUTO folder\n", dta.name));
        }
        else
#endif
        {
            run_auto_program(dta.name);

            /* Setdta. BetaDOS corrupted the AUTO load if the Setdta
             * not repeated here */
            trap1( 0x1a, &dta);
        }

        err = trap1( 0x4f );                 /* Fsnext */
    }
}
Exemplo n.º 2
0
/*
*       Routine to load in desk accessories.  Files by the name of *.ACC
*       will be loaded.
*/
static void ldaccs(void)
{
        register WORD   i;
        WORD            ret;

        strcpy(&D.g_dir[0], "*.ACC");
        dos_sdta((LONG)D.g_dta);

        /* if Control is held down then skip loading of accs */
        if ((kbshift(-1) & (1<<2)))
          return;

        ret = TRUE;
        for(i=0; (i<NUM_ACCS) && (ret); i++)
        {

          ret = (i==0) ? dos_sfirst(D.g_dir, F_RDONLY) : dos_snext();
          if (ret)
            sndcli(&gl_dta[30]);
        }
}
Exemplo n.º 3
0
static LONG bios_b(WORD flag)
{
    return kbshift(flag);
}