koreth@ssyx.ucsc.edu (Steven Grimm) (05/13/88)
Submitted-by: ljdickey@water.waterloo.edu (Lee Dickey) Posting-number: Volume 1, Issue 57 Archive-name: idle12 Here is (ahem) yet another version of IDLE, version 1.2. (Version 1.1 had yet another bug.) Reminder: IDLE 1.2 replaces NIGHT, NITE, and earlier versions of IDLE, all of which had serious bugs. IDLE blanks the screen after 6 minutes of no activity (up from 3 in 1.1) and unblanks upon keyboard/mouse input or BIOS text output. All IDLE does is zero the palette AND shift the video RAM pointer 32K below the normal location. Since that area is normally all zeros, zeroing the video palette will display it as all black. IDLE checks to see that that piece of RAM is all zeros, and if it is not, it leaves the video pointer as it was, but still zeros the palette. This has the effect of blanking the screen in color mode, but only reversing black and white in monochrome mode. The check for nonzeros is done slowly, so strange things _might_ show on the screen for up to 20 seconds. But not to worry: IDLE does _not_ write to the video RAM. IDLE can _still_ cause problems with programs that change the screen RAM location *** without user input and after 6 minutes of no input. *** Since such a program might later restore the screen RAM location to _either_ what it was when changed (the blank area) (case A) _or_ what it was before it was blanked (case B), depending on the program design, I cannot fix IDLE to handle all possible cases. (Should I make IDLE crash the program on purpose in such a case?) Currently IDLE avoids further fiddling with the screen location after detecting such a change. That means problems in case A if the program changes back to what it _thinks_ is the original screen. To customize the delay before blanking, change the LONG integer that is located immediately after the branch instruction at the start of the program, at an offset of 32 bytes from the start of the .PRG file, and followed with the ASCII string "IDLE" in the next 4 bytes. The default value is 72000 decimal (00011940 hex) for 6 minutes (6*60*200). I have only tested IDLE with a monochrome monitor, but it is supposed to work with color too, as described. - Moshe Braner ---------------------- cut here -------------------- table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 idle12.prg M8!H *@ & :8 1E 241,10 !(z MYX# 0.< ? < ,#H!6F960?H!5E.0:G!!^() 0_H!6G '(M!"F%'(__HS_ "y M !=DIY !?F9.,_P 0 79!^(( $"@ >%($"@ S/ !@# Z 1H1x M0 #X$@10 !8"(,0 !9AQ!^(( $"@ >%($"@ [!Z /9G"#/\ ( %Vw M0?H XC 0:@I">0 7XP/'T 44 P@"!Z -1*L 9@9*L $9S P.@"V#$ v M 686,#H MA' @@/@2!' @@$S_ " !=C/\?0 %\,_P 0 7Y&WTS?u M P$O.O\63G5)1$Q% $CG@, P+P *#$ V8"82),WP,!+SK_YDYU241,t M10 !(YX# 80I,WP,!+SK_\$YU0.< ? < ,#H .F<J#$ 68.,#H .!' s M@@/@2!' @@%!^() 0_H +G '(-E1R/_\0GD %V(_K^F 7A&WTYU r M 1E q M !(>@ T/SP )DY.7(](>@"</SP "4Y!7(]R"G#_4<C__E')__A!^O_:D>\ p M!$)G+P@_/ Q3D%"@$'X@@ 0* !X4 0* #!$ @#/ !@N& (\ &$o M('@!& RH241,1?_X9QYP I*!0?H &B)P& D<!@,)G 8&"21(HM8@5'(_^Q.n M=0 +0 $8 !% /X $@ # 0( $D $ T*"4E$3$4Zm M('1H92!#4E0@<')O=&5C=&]R#0H)(" @(&)Y($UO<VAE($)R86YE<@T*"79El M<G-I;VX@,2XR("T@:6YS=&%L;&5D#0H* #X&"A0R#C@("'P(A@@^! 0$k #! 0 j i end