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.
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