BBS: Inland Empire Archive Date: 05-30-92 (05:30) Number: 160 From: PHIL HODGES Refer#: 19 To: MARK BUTLER Recvd: NO Subj: Event trapping Conf: (2) Quik_Bas
MB> On 05-25-92 Phil Hodges wrote to Zack Jones... MB> PH> Here's how I do CTRL-BRK, just in case anyone's interested... > PH> > PH> DIM OldBrk%(4) > PH> DEF SEG = 0 > PH> FOR B = &H6C TO &H6F > PH> OldBrk%(I-&H6C) = PEEK (B) > ^ > what is the value of "I"? ARGH!!!! That SHOULD read OldBrk%(B-&H6C) = PEEK (B) Sorry about that..don't know how that got in there! And no, it won't work in the environment, only in compiled .EXE files. Though I don't know if I would use it very much, since it may not be compatible with all systems (like OS/2, etc.) MB> PH> NEXT > PH> POKE &H6C, &H53 > PH> POKE &H6D, &HFF > PH> POKE &H6E, &H0 > PH> POKE &H6F, &HF0 > PH> DEF SEG > PH> ' to restore > PH> DEF SEG = 0 > PH> FOR B = &H6C TO &H6F > PH> POKE B, OldBrk%(I-&H6C) > ^ > I assume the value of "I" is the same here to? Yes, the code is the same, only substitute the misplaced I for B! Just one of those stupid things, I guess! MB> I didn't see the rest of this thread but I took interest in the above > code ...but... couldn't get it to work, at least not in the > environment it doesn't. Especially without knowing what "I" equals. Like I said above, it will only work in compiled .EXE's....as long as you change that 'I' to 'B' like it should've been... :-& MB> Anyway... I don't have any other routine for disabling ctrl-brk so > what's the fix for the above code? (ya really got my interest now) > Like I say, I didn't see the rest of the thread so I don't know if > you are looking for some other approach but a ctrl-alt-del trap is > not hard using KEY trapping. Try this demo out... As a matter of fact, I kind of was, but learned that it's not possible with the above method (PEEK and POKE), but could be with KEY...I'll try it out...thanks! And (once again) the above code _will_ work in compiled .EXE files, but not in the environment. {code removed for space saving...} MB> Hope this helps ya out... So do I...here, let me share another little piece of code, only this time CORRECT! DEF SEG=64: OUT 97,204 DEF SEG=64: OUT 97,76 'to re-enable keyboard...though this doesn't seem to affect SLEEP Here's one way to check if a printer is on line, without having to use ON ERROR GOTO if it's not (this only works with Epson as far as I know, but if someone could test it) DEF SEG = 64 A = PEEK(8)+256*PEEK(9) B = INP(A+1) AND 248) XOR 72 IF (B AND 128)<> 128 THEN PRINT "Printer off line." IF (B AND 128)= 128 THEN PRINT "Printer on line..." This will return the amount of memory installed: DEF SEG = 0: MEM% = PEEK(&H413)+(256*PEEK(&H414)) PRINT MEM%;"K memory installed" Well, that control-alt-del trap didn't work, bud...oh well. I had faith, too! |) | hi| ___ X SLMR 2.1a X No, Scotty. I said "Beam me ABOARD". Not "A BROAD" --- Maximus 2.00 * Origin: The Gamorian Vortex Project (1:105/601)
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