Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:basic:qbasic:multiboot

Multiboot

En tiempos del MS-DOS, cada programa (especialmente los juegos) necesitaba una configuración distinta. Unos tenían que liberar totalmente la memoria, otros exigían un gestor de memoria, otros, aunque necesitaban memoria libre, pedían que se instalara un ratón…

Aunque las últimas versiones de MS-DOS y DR-DOS incluyeron menús de arranque, ¿por qué no programar el tipo de arranque *antes* de resetear el ordenador? Eso es lo que hace este programa de qbasic.

mltboot.bas
DECLARE SUB Centrar (lin!, a$)
COLOR 7, 1: CLS
COLOR 1, 7: LOCATE 1, 1: PRINT SPACE$(80)
LOCATE 1, 35: PRINT "MULTI-BOOT": COLOR 7, 1
PRINT
PRINT "Este programa permite arrancar con las siguientes configuraciones especiales:"
PRINT
PRINT " 0 - Liberar memoria. Arrancar sin XMS."
PRINT " 1 - Liberar memoria. Arrancar con XMS."; SPC(8);
COLOR 31, 1: PRINT "Recomendado para BSTONE": COLOR 7, 1
PRINT " 2 - Liberar memoria. Arrancar con XMS y EMS."
PRINT
PRINT "    Entre la opci¢n deseada. Los archivos AUTOEXEC.BAT y CONFIG.SYS actuales"
PRINT "se grabar n como BMLTBOO.DEF y SMLTBOO.DEF respectivamente."
PRINT "    Se asume que se arranca de C: y el DOS est  en C:\DOS."
PRINT "    NO SE CARGA NINGéN CONTROLADOR QUE SE CARGUE EN CONFIG.SYS O EN"
PRINT "AUTOEXEC.BAT (disco compacto, rat¢n, teclado...)"
PRINT
PRINT "> ";
a$ = INPUT$(1)
IF a$ < "0" OR a$ > "2" THEN END
SHELL "COPY C:\AUTOEXEC.BAT C:\BMLTBOO.DEF"
SHELL "COPY C:\CONFIG.SYS C:\SMLTBOO.DEF"
OPEN "c:\CONFIG.SYS" FOR OUTPUT AS #1
SELECT CASE a$
        CASE "0"
                PRINT #1, "REM este config.sys est  vac¡o."
        CASE "1"
                PRINT #1, "DEVICE=C:\DOS\HIMEM.SYS"
                PRINT #1, "DOS=HIGH"
        CASE "2"
                PRINT #1, "DEVICE=C:\DOS\HIMEM.SYS"
                PRINT #1, "DEVICE=C:\DOS\EMM386.EXE"
                PRINT #1, "DOS=HIGH,UMB"
END SELECT
INPUT "Entre valor para files (25 recomendado)>"; FILES$
IF FILES$ <> "" THEN PRINT #1, "FILES="; FILES$ ELSE PRINT #1, "FILES=25"
CLOSE #1
OPEN "c:\AUTOEXEC.BAT" FOR OUTPUT AS #1
OPEN "c:\BMLTBOO.deF" FOR INPUT AS #2
PRINT #1, "@echo off"
DO UNTIL EOF(2)
        LINE INPUT #2, a$
        a$ = LTRIM$(UCASE$(a$)) + " "
        IF LEN(a$) > 1 THEN
                n1 = INSTR(a$, " ")
                n2 = INSTR(a$, CHR$(9))
                IF n2 > 0 AND n2 < n1 THEN n1 = n2
                SELECT CASE MID$(a$, 1, n1 - 1)
                CASE "SET", "PATH"
                        PRINT #1, a$
                END SELECT
        END IF
LOOP
CLOSE #2
PRINT #1, "C:\AUTO2BAT.BAT"
CLOSE #1
OPEN "c:\AUTO2BAT.BAT" FOR OUTPUT AS #1
PRINT #1, "ECHO Restaurando CONFIG.SYS y AUTOEXEC.BAT originales..."
 
PRINT #1, "COPY  C:\BMLTBOO.DEF C:\AUTOEXEC.BAT"
PRINT #1, "COPY  C:\SMLTBOO.DEF C:\CONFIG.SYS"
CLOSE #1
CLS
COLOR 1, 7
FOR F = 10 TO 15: LOCATE F, 23: PRINT SPACE$(34); : NEXT
 
Centrar 11, "REINICIALIZE SU COMPUTADORA"
LOCATE 12, 25: PRINT STRING$(30, 196)
Centrar 13, "Retire cualquier disco de A: y"
Centrar 14, "pulse CTRL-ALT-DEL o RESET."
COLOR 1, 7
LOCATE 24, 2: PRINT SPACE$(78);
LOCATE 25, 2: PRINT SPACE$(78);
Centrar 24, "Si no hace reset, copie C:\BMLTBOO.DEF en C:\AUTOEXEC.BAT"
Centrar 25, "y C:\SMLTBOO.DEF en C:\CONFIG.SYS."
 
DO: LOOP
 
SUB Centrar (lin, a$)
LOCATE lin, 40 - (LEN(a$) / 2)
PRINT a$;
END SUB
Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/basic/qbasic/multiboot.txt · Última modificación: 2025/02/02 21:59 por nepenthes