BBS: Inland Empire Archive Date: 02-25-93 (22:31) Number: 176 From: ROB MCKEE Refer#: NONE To: ZACK JONES Recvd: NO Subj: Re: RE-BOOT Conf: (2) Quik_Bas
--> Note:
Moved (from: NETMAIL) by Rob McKee using timEd.
Hello Zack!
You wrote to Rob Mckee:
RM> ' Warm Reboot
ZJ> Neat little routine. Here's an idea for a program I've
ZJ> thought about writing Using a routine like yours to reboot
ZJ> the machine - but also have it check to see how many times
ZJ> it's rebooted. I used to have Front Door exit with an
ZJ> errorlevel that called BOOT.COM if it couldn't initialize
ZJ> the modem - well that normally worked until one day when it
ZJ> got hung really bad - FD sat in a Boot...Can't initialize
ZJ> modem....Boot loop for about 2 hours - lots of unwanted wear
ZJ> and tear on the ole 'puter. Anyway - it'd be nice to have a
ZJ> program that can reboot the system a set number of times.
ZJ> Interested in working on one? Here's a very rough flow
ZJ> chart:
ZJ> 1 -Open a file and write the number of times the system has
ZJ> been booted (eg 1)
ZJ> 2 - reboot
ZJ> 3 - modem hung still - FD exits calling reboot
ZJ> 4 - check file to get number of times rebooted if greater
ZJ> than 3 don't reboot the machine - blank the screen so we
ZJ> don't burn anyhing in to the monitor.
ZJ> Whatta ya say - wanna write one?
|---------| Slash Here |-------------8<------------>8-----------------|
DECLARE SUB Boot (ColdBoot%)
DEFINT A-Z
BBSDir$ = ENVIRON$(UCASE$(RTRIM$(COMMAND$)))
' Uses any Enviroment Variable that points to a Directory
' I use my %BINK% variable
IF RIGHT$(BBSDir$, 1) <> "\" THEN BBSDir$ = BBSDir$ + "\"
CountFile$ = BBSDir$ + "Booted.cnt"
OPEN CountFile$ FOR BINARY AS 1
DO
LOOP UNTIL INKEY$ = ""
CurrentTime$ = TIME$ ' Get alittle fancy
La = LOF(1)
IF LOF(1) THEN
a$ = SPACE$(La)
Nu$ = ""
GET #1, , a$
FOR t = 1 TO La ' Keep it compatible with QB
And PDS pa = ASC(MID$(a$, t, 1))
SELECT CASE pa
CASE 48 TO 57
Nu$ = Nu$ + CHR$(pa)
END SELECT
NEXT
booted = VAL(Nu$)
ELSE
Booted = 0
END IF
IF booted > 3 THEN
CLS
CLOSE
KILL CountFile$ ' This Makes Booted = 0
RANDOMIZE TIMER ' Brain dead routine to have the
Message Hop DO
r! = RND(TIMER) * 25! + 1 ' around the screen
c% = FIX(RND(TIMER) * 50! + 1)
IF FIX(RND(8) * 25) = 20 THEN
LOCATE r2 + 1, c2 + 1, 0
PRINT SPACE$(29);
LOCATE FIX(r!), c%, 0
PRINT "Boot Failed At " + CurrentTime$;
r2 = FIX(r!) - 1
c2 = c% - 1
END IF
LOOP WHILE INKEY$ = ""
ELSE
a$ = "Booted " + STR$(Booted + 1) + " Times" +
CHR$(13) + CHR$(10) PUT #1, 1, a$
CLOSE
Boot 0
END IF
END
SUB Boot (ColdBoot)
DEF SEG = 0
IF NOT ColdBoot THEN
POKE &H473, &H12
POKE &H472, &H34
END IF
DEF SEG = &HFFFF
CALL Absolute(0)
END SUB
|---------| Slash Here |-------------8<------------>8-----------------|
Kludgy but it works... Didn't feel like writing the boot into a Function.
SysOp 1:125/411 PVT - Rob
--- timEd/B6
--- Squish v1.01
* Origin: Flyer_Proof_Computer_Svs,Richmond_CA,MO,V32B (1:125/411)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET