(FILECREATED "29-JUL-83 18:23:05" {PHYLUM}<DMRUSSELL>EXERCISE1.;6 3986 changes to: (VARS EXERCISE1COMS) (FNS Ask) previous date: "20-JUL-83 17:15:09" {PHYLUM}<DMRUSSELL>EXERCISE1.;5) (PRETTYCOMPRINT EXERCISE1COMS) (RPAQQ EXERCISE1COMS ((VARS (GWINDOWLIST NIL)) (VARS XeroxComputers) (BITMAPS ICON1) (PROP (LAN DolphinCycleTime DolphinCost DoradoCost DandelionCost D-Machines BitMapDisplays Languages) XeroxComputers) (FNS EXERCISEWINDOWS JitterWindow REMOVEWINDOWFROMLIST Ask))) (RPAQQ GWINDOWLIST NIL) (RPAQQ XeroxComputers NIL) (RPAQ ICON1 (READBITMAP)) (30 70 "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "OOOOOOOL" "H@@@@@@D" "H@@@@@@D" "H@@@@@@D" "H@@@@@@D" "H@@@@@@D" "H@@@@@@D" "KON@@@@D" "KON@@@@D" "HF@@@@@D" "HFGCBD@D" "HFLDKD@D" "HFHDKL@D" "HFHDJL@D" "HFLDJL@D" "HFGCBD@D" "HF@@@@@D" "HF@@@@@D" "KON@@@@D" "KON@@@@D" "H@@@@@@D" "H@@@@@@D" "HCOOOOHD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HB@OOHHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@ILHHD" "HB@IDHHD" "HB@IDHHD" "HB@IDHHD" "HB@IDHHD" "HB@IDHHD" "HB@IDHHD" "HB@ILHHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@H@HHD" "HB@OOHHD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HB@@@@HD" "HCOOOOHD" "H@@@@@@D" "H@@@@@@D" "H@@@@@@D" "OOOOOOOL") (PUTPROPS XeroxComputers LAN EtherNet) (PUTPROPS XeroxComputers DolphinCycleTime (200 ns micro-instruction cycle time)) (PUTPROPS XeroxComputers DolphinCost 33000) (PUTPROPS XeroxComputers DoradoCost 179000) (PUTPROPS XeroxComputers DandelionCost 25000) (PUTPROPS XeroxComputers D-Machines (Dorado Dolphin Dandelion)) (PUTPROPS XeroxComputers BitMapDisplays (Alto Star Dorado Dolphin Dandelion)) (PUTPROPS XeroxComputers Languages (MESA InterLisp-D SmallTalk BCPL)) (DEFINEQ (EXERCISEWINDOWS [LAMBDA NIL (* dmr: "20-JUL-83 17:06") (PROG NIL [GWINDOWLIST←(for i from 1 to 10 collect (CREATEW (create REGION LEFT ←(RAND 100 600) BOTTOM ←(RAND 100 300) WIDTH ←(RAND 50 200) HEIGHT ←(RAND 50 200)) (DATE] (for window in GWINDOWLIST do (WINDOWPROP window (QUOTE CLOSEFN) (QUOTE REMOVEWINDOWFROMLIST)) (WINDOWPROP window (QUOTE ICON) ICON1)) (while (GREATERP (LENGTH GWINDOWLIST) 0) do (for W in GWINDOWLIST do (JitterWindow W) (BLOCK))) NIL (RETURN GWINDOWLIST]) (JitterWindow [LAMBDA (window) (* dmr: "20-JUL-83 17:06") (* generate a random offset that will move the window, but not off the screen) (PROG ([width (fetch WIDTH of (WINDOWPROP W (QUOTE REGION] [height (fetch WIDTH of (WINDOWPROP W (QUOTE REGION] [left (fetch LEFT of (WINDOWPROP W (QUOTE REGION] [bottom (fetch BOTTOM of (WINDOWPROP W (QUOTE REGION] (r1 (RAND -20 20)) (r2 (RAND -20 20))) (if (LESSP r1+left 10) or (GREATERP r1+left 800) then r1←0) (if (LESSP r2+bottom 10) or (GREATERP r2+bottom 800) then r2←0) (MOVEW window r1+left r2+bottom]) (REMOVEWINDOWFROMLIST [LAMBDA (window) (* dmr: " 7-JUL-83 06:53") GWINDOWLIST←(REMOVE window GWINDOWLIST]) (Ask [LAMBDA (question) (* dmr: "29-JUL-83 17:29") (if question=NIL then NIL elseif (GETPROP (QUOTE XeroxComputers) question:1) then (GETPROP (QUOTE XeroxComputers) question:1) else (Ask question::1]) ) (DECLARE: DONTCOPY (FILEMAP (NIL (1928 3964 (EXERCISEWINDOWS 1938 . 2679) (JitterWindow 2681 . 3488) ( REMOVEWINDOWFROMLIST 3490 . 3652) (Ask 3654 . 3962))))) STOP