(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