From ffe99d6bcc96e86d7e33f4df37485b9ffaa0c97e Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Sun, 16 Jun 2024 21:17:48 -0700 Subject: [PATCH] FILEWATCH, QIX, SOLITAIRE--rename fields that conflict with REGION and POINT (#1763) --- lispusers/FILEWATCH | Bin 60791 -> 61241 bytes lispusers/FILEWATCH.LCOM | Bin 25413 -> 25317 bytes lispusers/QIX | 193 +++++++++++++++++++++------------------ lispusers/QIX.LCOM | Bin 2906 -> 2832 bytes lispusers/SOLITAIRE | 59 ++++++------ lispusers/SOLITAIRE.LCOM | Bin 10488 -> 10348 bytes 6 files changed, 133 insertions(+), 119 deletions(-) diff --git a/lispusers/FILEWATCH b/lispusers/FILEWATCH index ff49ce1f1c20d41b828bdd090777340fdb22cf22..06f36fbf78bcc267cd4b96b62db8aeff0afb642e 100644 GIT binary patch delta 1984 zcmZ`(U2GIp6wXpw%Fs$_OKG9Pl+x-3r=5Fe?)+3DuDi3{CEJ>Vd~aHby)HMD};-wAK7D-(2P-Q#*` z4X$2KBH0dqZfb(beg&TNg;-D>?LYnsnOgRYDdqsHYys_3Gt})omKcMxmsZ1XP6uqi z%V4jsz^CKGaCf|WA*sW!P8Sj;T)VLduDvzf7!QHo>H=ri1+udDvX2H7e7Olex!#WV z$wjj>nk}2^ZGf5eFCTtmDM~b=evb6%&FS?itX@9%&BmOUAI^p980?r)AwB*L)omCr zVqGKF4d8DZyn1?J^~l>F^|j1jpW(t6Q30;H-SAT7Z1s=I&Bp&*OC$&I^XDHo%B)-+|8w_ly!#2ccj@>^ zU*G(#&Q1Wgx?dJ`!Bp=uxHH)d+b>IFgEJZuJ7#iZZNs<^(_wpc$(6rU2=Ddf9PX+@ zcZK?5Hec|fRG7}G+%a5rKsC7#$vJqj6ch=xk;7MvB$BqJTdKoN2H)N5=wKF74mVt) z5asw~GaDY>>s-PGM~>+Rv!LaE$9jV~3IUumc}S$CviR|j1Y5kUFJU@{nYyrG^!|#X zaO9(H>SQU>(n0ZcjV$}A5fAHZJZwN!m_S2uMK0wJds@m*=Yo<-gp{y^?O*})EbMG% zmT+{^wRMNVo%<^l$Dl_SYasEUO_3~TjGM6f!D^3jYLGMAu;VidL7Ds#GGW{9+_H!uhY@94cI*X* zfdlk1aw;1oLtDgUn(-Ogpfv1-T6!ciAz{*1xa+vFUEnKZ26qH6!?1WL;W2BRx(rx0MI5D?Uh;Tnv=ncur63??18 zwurY)v52t17M!MR>b&L+$E$f;^X0I-QNl8~%)$uDm;^=7$Ivp%q!Uc;h&UZZuax%u zFg5H+l%io8%%o^26KK2Sp>rGuf`TGq3XH+5X30yZ3I!UYM9HdYbIYi)#T538p&(F5 z(z47NS@uxVwk%8b;qW<3e%owXOb=lSn$U%a`zYs9MVtU47BwO;@bPlWK`GSmG=ivk z^l6h(1rlGkH_JzIC~Taq_Hfmp&A3#sZTTHwt5Lq_A#cmD(+4Y(bSdR9C@TK|0ogRy delta 2129 zcmZ`(U2GIp6wXq*ZKtguZTV>t?rsa+)lNHe=f9wI*`58VyF1J7l-0(Bpea8JtrUE~ z2dgGViC}>9U`Upr@kyUFiwTlIw;(^p#9)kx(b!;oFoB@>Cb5v)C|84YS-Zdv<2#;MDZ65RO(i z1$K0;%GybnZFgMP$+2=K;ieg!><+=>JzdqS-9NR%{WERQ8R~+8PkLb_REBp#xzz&p zwDbgnhi7JwOwF?DAEDO+uvl3SwJUva@54U$vj1SSmlJmHQs9MwSDMpyCY6Rm$^eW7 zJE3;24Nh)f4jr4$H(?#{+YeEwZS8@T1FK-`o>q9H(heJM^kD27+`YCsz4`1jSWqi` zaIq7PO;wtM%XS3=5Zb>EZeMSP#Gdo8ZBG{N=L9J1%{Q=%l@^%adm&iw6BgceVCFFJ|Bn0S`db78Tfp22V7R$Kze@= zE?Lk-AcWn}3RZWdACo<}ZV zBdog_Su#!NQR&kSvfr{cKy5r&UHMHglq*cQg`!g^F&eLO%#EiROxE%CgnkzQ!M^#Ofz-Wz@%j{mKdKX!NohBa|+imOqRH5(0M-P zibXq>aq=Ev2^7I)Q}-j1u3gMIJMAR$2%AK!6895qpTJ4a+dJ*NO94nwA+l=7a(#c} zH%hfVM!^U{)-=P<5l_eRDO-%?<7ubJi12dgnrdMV_`Ydvr>tw5Oo_HU^`RW`C05L4O0GwdBwRH#<rO}1(@jB*sTHzWCXaQ*;w~eQ>Q_uj@r%ql=u%pHDbe1v3I1N*J*VKp3$`@H zSCt%8W(oo->8)6n0|ImtD%Uuf0!u5{#W=by zma+*|$Q>$45oL2;=|#J)0)bSas+y)+-&(Zev24~e3!yr(x~2Hi7VSa|`$l^ZNXn`P z&f>$ZCEN7?Z%|ajYG5*xo^MjfTMBttlVt8^Eu~`xRDcjlsY#aVrz|-|SH#l@@;1r3 zN)iij>)Y;5`~c`G)vxKA34i_BH==76HLDq1_3d2F6l_{+65%-aT9h84Vc z4+z#ufHX9wZj;#qOcPL1LB#_<2Hqx3i1H(l5HIk+GzlSI5JEfw(uBmhz8UMJk%uq$ zJAe0{?;LM^&it~)TzITQh)yooqddn82=hsSOLF|h1-y#62nw=zPM@K14)!EM^(dCtW?@YwK`(6B~3%y3&dhE7R^_dAnUG`B{mWq z%Bq@@wiIVC({`7q;fv4iYr`B8Wm#}$nEu$U8zU%Lu#|(USt>>|DO*7-zOyl2ObRk& zGqU>wbAn-lj?!|qH8>OrI{wzrfPUTj2;hCbVZc$}I^YeTX*6;nB@kdb8Mxe=gZ^xYPNE7^=&Yh_TC5+N$ zVOlkcie)1#N=Tn7+LmhMfM92F=ku&U^fa>>7z+R2k;9FnR$E+h1G|>VeJl6B2H4Ya z9&ob*ns9&XXd#Y2Iu8NrU1MN6+w~PO+2L0Ke-F!G8tOhnOz-#10e0>-0Kc8?ah}_~ z2B%Q31vt~&2e{IEj#&1r(ze$2;1=N5`mPcmB5J&jJ|(4Q*_%|+%KlA~(f>H5wf+sD zI|d%01tJ44k?0Q}dIoTKkjQ>=unhRcU>}Y6bubJOZgT{aK;ghsKrSEHglk;gy%`pTRWmBKw75l=S{Dn!?4Sv4|d zxd?)D&S5FM`afPQlB~357L{mP&mcK*Cr^0Ov6OU5)4TvlA_3bBqBpdxY2_5#ix}}{ zyUl=kq^~MQ3D%$IJg2o>uh;5FC*bW8dbFfM6A2MbmWsBTRh10b<8f4kdJR)LWvixv zuq2{_SyU+zX~=DZAfl9!&YKo|mehBP^87JGltGvi5p7ma8Pg~sQ-o<~ewf%cCexWKio%)l-$ZCB0f-hVBrLIrn<}Jelfo`3&8TzhtrH7e`Q@Y%4W4|AcV|LyLPmCw%3!M%7XW%e5=gFzC`&Q{=hIVwg{7R^my!2nv C+-c7M delta 1538 zcmZuxU2NM_6t4RdLQ6!utP8BwdX}|oGBr`I6FYXgHDrmCIE~}XaaJ~sK}j=+);d#v z1gL@{1ayLpb@L{%X)l{JU=L_WW{8(QfG85uUM3{O(_Rol2ue5GpLqhS&%j1(r>aSb~dRJWW>OLFo3A$AghX1cSs6FVEL& z&ABs;+4>CBUq3UyFp_}mR4A>MkA<>wQ7WYr2^t3Yv(;h|9`^``!+w~VUc|)zHRt`o z?f|t&4{B0Mmol(@3(o#{^A5Au6$eg?iRKH;aCF<3gODg|(otEhRzex{*lt0@1WOW8 zfm$%Ub)T7I7>}9kSnu=%f}TsA-yz%RJdEh>8bjo|ZX*8N#oKXfhbu?dAAe%gz==ue#nAAPfg8c zij9TEAhg|dGv>9YYwc6LW_xdH4<`VvODk=7G5|uv z)~nUkw?sd-yyF_;F7E}zPrO)<^}Dx&1|IG_fmrB2h|+5R4^%qhyNdXSPef_tnN=!% z{%j4gZ+8jtrQM$*x(Bo_tSrtu6`RWg=cqck;?(rvAn8E9KD3Uw41iYG;ah6;qJPs~ zVxHW0n`R6jcj&3%TLYdzl!d%n(IH0npKZ)8*5?<3v=!F=k+U@Y&i*$LgQK)1v!heP zo&d|!wc3(lG>li0z(y#|H0S50jm4ys``f4wbFF^@gj$dTr;vPn;5P2iIvif3j~~gG z?HD>6dlS*c`MuZ=G*VS;#Dg}bt^K)Ln;GFA^odZ`RHdw!@#L`$*zqCW$57nW&P7f2 z5m_O2JJUtAB8AdQ21vwi&z2x?_P(Wbs#vsF@OIO*ErD}RLDh1SZm)>O?PJ*z2nUK( zs^TqSBX;b+V^|@g2uG?i?okk+P_5{4R+chJq!Fl~UrS1-bXhF{;RPtG6}d&6C0jyF zfK(}+S2dh9C-#W4xC8a5gyrFU+QllV(lHP#tV3}^pjDC`;7N-@46Ac0u>&lgmrc=% zRw*0U`{~-EQa6^cK43}Ix);Ad8+bxob!GTcX2% zBYPUrlY1BOQqJ#Kd~MT1c@4$2{1E1Rk^g{Rg7IQ&#IF`_P^w%(yszv<{6^}x+@*ak zd>zyC_JtB!7wU@s3vwcGraI}fE?4g|PDRSplarry>medley>lispusers>QIX.;2| 11276 +(FILECREATED "14-Jun-2024 14:54:24" |{WMEDLEY}QIX.;4| 12192 - :CHANGES-TO (FNS QIX.IDLE) + :EDIT-BY |rmk| - :PREVIOUS-DATE "12-Aug-87 03:05:50" |{DSK}larry>medley>lispusers>QIX.;1|) + :CHANGES-TO (FNS QIX.GROW) + :PREVIOUS-DATE "14-Jun-2024 14:49:48" |{WMEDLEY}QIX.;3|) -; Copyright (c) 1987 by Xerox Corporation. (PRETTYCOMPRINT QIXCOMS) @@ -18,69 +18,72 @@ (DEFINEQ (QIX.GROW - (LAMBDA (WINDOW DONTDISMISS) (* \; "Edited 1-Aug-87 16:57 by JEFF.SHRAGER") - - (* * |This| |sets| |up| \a QIX |the| |specified| |window.| - |The| |QIX's| |parameters| |are| |defined| |at| |random,| |but| |with| - |reasonable| |value| |ranges.| |The| |dismiss| |argument| |tell| |the| QIX - |whether| |to| DISMISS |every| |cycle| |or| |not.| - B\e |careful.|) + (LAMBDA (WINDOW DONTDISMISS) (* \; "Edited 14-Jun-2024 14:54 by rmk") + (* \; + "Edited 1-Aug-87 16:57 by JEFF.SHRAGER") + +(* |;;;| "This sets up a QIX the specified window. The QIX's parameters are defined at random, but with reasonable value ranges. The dismiss argument tell the QIX whether to DISMISS every cycle or not. Be careful.") (PROG (P P2 (W (OR WINDOW (CREATEW))) L) (SETQ *STOP.QIXS* NIL) - - (* * P |and| P2 |define| \a QIX.) + +(* |;;;| "P and P2 define a QIX.") (SETQ P (|create| QIX.POINT - X _ (RAND 1 200) - Y _ (RAND 1 100) + QX _ (RAND 1 200) + QY _ (RAND 1 100) VH _ (RAND 1 20) VV _ (RAND 1 20))) (SETQ P2 (|create| QIX.POINT - X _ (RAND 1 200) - Y _ (RAND 1 100) + QX _ (RAND 1 200) + QY _ (RAND 1 100) VH _ (RAND 1 20) VV _ (RAND 1 20))) - - (* * L |is| |the| |tail| |list.| I\t |starts| |out| |full| |of| NIL\s |and| - |gets| |filled| |as| |the| QIX |moves.| I\t |is| |also| |inserted| |in| |it's| - |own| |mouth| |so| |that| |the| |whole| |thing| |wraps| |around.|) + +(* |;;;| "L is the tail list. It starts out full of NILs and gets filled as the QIX moves. It is also inserted in it's own mouth so that the whole thing wraps around.") (SETQ L (APPEND (|for| X |from| 1 |to| (RAND 5 25) |collect| (COPY '(A S D F))) - (LIST (LIST (|fetch| X P) - (|fetch| Y P) - (|fetch| X P2) - (|fetch| Y P2))))) + (LIST (LIST (|fetch| (QIX.POINT QX) + P) + (|fetch| (QIX.POINT QY) + P) + (|fetch| (QIX.POINT QX) + P2) + (|fetch| (QIX.POINT QY) + P2))))) (RPLACD (LAST L) L) LOOP (COND (*STOP.QIXS* (RPLACD L NIL) (RETURN NIL))) - - (* * |Draw| |the| |QIX's| |head| |line.|) - (MOVETO (|fetch| X P) - (|fetch| Y P) +(* |;;;| "Draw the QIX's head line.") + + (MOVETO (|fetch| (QIX.POINT QX) + P) + (|fetch| (QIX.POINT QY) + P) W) - (DRAWTO (|fetch| X P2) - (|fetch| Y P2) + (DRAWTO (|fetch| (QIX.POINT QX) + P2) + (|fetch| (QIX.POINT QY) + P2) 1 'REPLACE W) - - (* * |Move| |the| |points| |according| |to| |their| X |and| Y |velocities.|) + +(* |;;;| "Move the points according to their QX and QY velocities.") (QIX.MOVE.POINT P W) (QIX.MOVE.POINT P2 W) - - (* * |Take| \a |deep| |breath| |if| |the| |user| |asks| |you| |to.| - |This| |slows| |things| |down.|) + +(* |;;;| "Take a deep breath if the user asks you to. This slows things down.") (OR DONTDISMISS (DISMISS)) - - (* * |Delete| |the| |first| |object| |on| |the| |tail| |list.|) + +(* |;;;| "Delete the first object on the tail list.") (COND ((EQ (CAAR L) @@ -93,60 +96,63 @@ (CADDDR OLD) 1 'ERASE W)))) - - (* * |Replace| |the| |current| |point| |with| |the| |new| |head,| |which| - |effectively| |adds| |it| |to| |the| |end| |of| |the| |list,| |since| |we| - |them| |immediately| |move| |to| |the| |next| |elt| |in| |this| |circular| - |list.|) + +(* |;;;| "Replace the current point with the new head, which effectively adds it to the end of the list, since we them immediately move to the next elt in this circular list.") (RPLACA (CAR L) - (|fetch| X P)) + (|fetch| (QIX.POINT QX) + P)) (RPLACA (CDAR L) - (|fetch| Y P)) + (|fetch| (QIX.POINT QY) + P)) (RPLACA (CDDAR L) - (|fetch| X P2)) + (|fetch| (QIX.POINT QX) + P2)) (RPLACA (CDDDAR L) - (|fetch| Y P2)) + (|fetch| (QIX.POINT QY) + P2)) (SETQ L (CDR L)) (GO LOOP)))) (QIX.IDLE - (LAMBDA (W) (* \; "Edited 24-Aug-2022 07:53 by larry") + (LAMBDA (W) (* \; "Edited 14-Jun-2024 14:49 by rmk") + (* \; "Edited 24-Aug-2022 07:53 by larry") (* \;  "Edited 1-Aug-87 16:58 by JEFF.SHRAGER") - (* * CLOBBER ANY OLD QIXS THAT WERE LEFT AROUND - (WASTING SPACE) FROM BEFORE.) +(* |;;;| "CLOBBER ANY OLD QIXS THAT WERE LEFT AROUND (WASTING SPACE) FROM BEFORE.") (AND (BOUNDP '*OLD-QIXS*) (FOR Q IN *OLD-QIXS* DO (RPLACD Q NIL))) (PROG (P P2 L QIXS) - (* * P |and| P2 |define| \a QIX.) +(* |;;;| "P and P2 define a QIX.") (SETQ QIXS (|for| I |from| 1 |to| 5 |collect| (PROGN (SETQ P (|create| QIX.POINT - X _ (RAND 1 200) - Y _ (RAND 1 100) + QX _ (RAND 1 200) + QY _ (RAND 1 100) VH _ (RAND 1 20) VV _ (RAND 1 20))) (SETQ P2 (|create| QIX.POINT - X _ (RAND 1 200) - Y _ (RAND 1 100) + QX _ (RAND 1 200) + QY _ (RAND 1 100) VH _ (RAND 1 20) VV _ (RAND 1 20))) - (* * L |is| |the| |tail| |list.| I\t |starts| |out| |full| |of| NIL\s |and| - |gets| |filled| |as| |the| QIX |moves.| I\t |is| |also| |inserted| |in| |it's| - |own| |mouth| |so| |that| |the| |whole| |thing| |wraps| |around.|) +(* |;;;| "L is the tail list. It starts out full of NILs and gets filled as the QIX moves. It is also inserted in it's own mouth so that the whole thing wraps around.") (SETQ L (APPEND (|for| X |from| 1 |to| (RAND 5 25) |collect| (COPY '(A S D F))) - (LIST (LIST (|fetch| X P) - (|fetch| Y P) - (|fetch| X P2) - (|fetch| Y P2))))) + (LIST (LIST (|fetch| (QIX.POINT QX) + P) + (|fetch| (QIX.POINT QY) + P) + (|fetch| (QIX.POINT QX) + P2) + (|fetch| (QIX.POINT QY) + P2))))) (RPLACD (LAST L) L) (LIST P P2 L)))) @@ -157,22 +163,26 @@ (SETQ P2 (CADR Q)) (SETQ L (CADDR Q)) - (* * |Draw| |the| |QIX's| |head| |line.|) +(* |;;;| "Draw the QIX's head line.") - (MOVETO (|fetch| X P) - (|fetch| Y P) + (MOVETO (|fetch| (QIX.POINT QX) + P) + (|fetch| (QIX.POINT QY) + P) W) - (DRAWTO (|fetch| X P2) - (|fetch| Y P2) + (DRAWTO (|fetch| (QIX.POINT QX) + P2) + (|fetch| (QIX.POINT QY) + P2) 1 'REPLACE W) - (* * |Move| |the| |points| |according| |to| |their| X |and| Y |velocities.|) +(* |;;;| "Move the points according to their QX and QY velocities.") (QIX.MOVE.POINT P W) (QIX.MOVE.POINT P2 W) - (* * |Delete| |the| |first| |object| |on| |the| |tail| |list.|) +(* |;;;| "Delete the first object on the tail list.") (COND ((EQ (CAAR L) @@ -186,34 +196,36 @@ 1 'ERASE W)))) - (* * |Replace| |the| |current| |point| |with| |the| |new| |head,| |which| - |effectively| |adds| |it| |to| |the| |end| |of| |the| |list,| |since| |we| THEN - |immediately| |move| |to| |the| |next| |elt| |in| |this| |circular| |list.|) +(* |;;;| "Replace the current point with the new head, which effectively adds it to the end of the list, since we THEN immediately move to the next elt in this circular list.") (RPLACA (CAR L) - (|fetch| X P)) + (|fetch| (QIX.POINT QX) + P)) (RPLACA (CDAR L) - (|fetch| Y P)) + (|fetch| (QIX.POINT QY) + P)) (RPLACA (CDDAR L) - (|fetch| X P2)) + (|fetch| (QIX.POINT QX) + P2)) (RPLACA (CDDDAR L) - (|fetch| Y P2)) + (|fetch| (QIX.POINT QY) + P2)) (RPLACA (CDDR Q) (CDR L))) (GO LOOP)))) (QIX.MOVE.POINT - (LAMBDA (P W) (* |edited:| "16-May-85 00:39") - - (* * |This| |guy| |updates| |the| QIX |line| |endpoints| |according| |to| - |their| |velocities| |in| |the| X |and| Y |directions.| - I\f |we| |hit| \a |wall,| |then| |simply| |negate| |the| |relevant| |velocity| - |vector.|) + (LAMBDA (P W) (* \; "Edited 14-Jun-2024 14:48 by rmk") + (* |edited:| "16-May-85 00:39") + +(* |;;;| "This guy updates the QIX line endpoints according to their velocities in the X and Y directions. If we hit a wall, then simply negate the relevant velocity vector.") (PROG ((VV (|fetch| VV P)) (VH (|fetch| VH P)) - (X (|fetch| X P)) - (Y (|fetch| Y P))) + (X (|fetch| (QIX.POINT QX) + P)) + (Y (|fetch| (QIX.POINT QY) + P))) (PROG ((NEWX (IPLUS X VH)) (NEWY (IPLUS Y VV))) (COND @@ -230,8 +242,10 @@ ((GREATERP NEWX (WINDOWPROP W 'WIDTH)) (SETQ NEWX (WINDOWPROP W 'WIDTH)) (SETQ VH (ITIMES -1 VH)))) - (|replace| Y P NEWY) - (|replace| X P NEWX) + (|replace| (QIX.POINT QY) + P NEWY) + (|replace| (QIX.POINT QX) + P NEWX) (|replace| VV P VV) (|replace| VH P VH))))) @@ -249,13 +263,12 @@ ) (DECLARE\: EVAL@COMPILE -(RECORD QIX.POINT (X Y VH VV)) +(RECORD QIX.POINT (QX QY VH VV)) ) (SETQ IDLE.FUNCTIONS (CONS '("5 Qix's" 'QIX.IDLE) IDLE.FUNCTIONS)) -(PUTPROPS QIX COPYRIGHT ("Xerox Corporation" 1987)) (DECLARE\: DONTCOPY - (FILEMAP (NIL (592 11044 (QIX.GROW 602 . 4158) (QIX.IDLE 4160 . 8972) (QIX.MOVE.POINT 8974 . 10356) ( -QIX.PLAY 10358 . 11042))))) + (FILEMAP (NIL (544 12010 (QIX.GROW 554 . 4311) (QIX.IDLE 4313 . 9800) (QIX.MOVE.POINT 9802 . 11322) ( +QIX.PLAY 11324 . 12008))))) STOP diff --git a/lispusers/QIX.LCOM b/lispusers/QIX.LCOM index f2d28cc1553ba4c28e054ce27413032e48981ece..44acc755b830aef77a5e13e40663787fd45fba17 100644 GIT binary patch delta 496 zcmaKp%}T>S6oqLCV&?(6zGTxxNXSg4*p4E^WKtt(()`r6xDwk%v9_f@DNOpukyOQj#ijz*UPa+3_<}@R;A1|Wl-e%$>Vf58uVc@ z1{t!aPLn%6?>(Q7hV$uiKA6ofBCo5T(M$y-|8XIV)>-vbTrF~!QKg?jHXLUlyKUbW zlwYF0(siNh-z^40v~N>2m_cL}DX!;pJLXo(ojuV{VnPom1Wa(90OO9AYL`98W{(dU zF#F01x(%LaX$XoNBna|GjX3P6z*;fC@xpeZIfD8RDhkrtA*i|iEW8vAq>x%2cx)vc zNEL$x1RD_ZmT%cy6a$P+P%KEm0asPg_EoZ^0@{2WS0tpUXj3e`i*;8z(S?|TVt@fS o|5eR2gkBLb)3j%Y%~tFMX^kT9g<=Y5K+IGL^V~z zlr_#cPS__kh4kdKJL<97#7yCR)O9=xX@8Ugs^M8VyUWCP>vr2*T&K7)(E)2X3<+mK+`mNFg8I zh7PjIl}$}vk@!1M_&S}kyvtl?Wllarry>medley>lispusers>SOLITAIRE.;2 26883 +(FILECREATED "14-Jun-2024 15:48:55" {WMEDLEY}SOLITAIRE.;4 27251 - :CHANGES-TO (FNS SOLO DEALDECK GETCARD) - (VARS SOLITAIRECOMS) + :EDIT-BY rmk - :PREVIOUS-DATE "15-Jan-86 23:32:05" {DSK}larry>medley>lispusers>SOLITAIRE.;1) + :CHANGES-TO (RECORDS CARD) + (FNS GETCARD MOVECARD UPCARD NXTCARD) + :PREVIOUS-DATE "24-Aug-2022 08:54:17" {WMEDLEY}SOLITAIRE.;2) -(* ; " -Copyright (c) 1982, 1985-1986 by Xerox Corporation. -") (PRETTYCOMPRINT SOLITAIRECOMS) @@ -169,11 +167,12 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. else NIL]) (GETCARD - [LAMBDA (I) (* bas%: "30-JUL-82 19:04") + [LAMBDA (I) (* ; "Edited 14-Jun-2024 15:48 by rmk") + (* bas%: "30-JUL-82 19:04") (PROG ((C (ELT DECK I))) (if (fetch FACE of C) else (replace FACE of C with (CARDIMAGE C)) - (replace SAV of C with (BITMAPCREATE CardWidth CardHeight))) + (replace (CARD CDSAV) of C with (BITMAPCREATE CardWidth CardHeight))) (replace CX of C with (replace CY of C with NIL)) (RETURN C]) @@ -192,13 +191,14 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. then (SEARCHSTACKS (TOP H]) (MOVECARD - [LAMBDA (C X Y) (* lmm " 6-Aug-85 00:04") + [LAMBDA (C X Y) (* ; "Edited 14-Jun-2024 15:46 by rmk") + (* lmm " 6-Aug-85 00:04") (if (fetch CX of C) then (DOMOVE (fetch FACE of C) (fetch CX of C) (fetch CY of C) - X Y (fetch SAV of C)) - else (BITBLT SOLOW X Y (fetch SAV of C) + X Y (fetch (CARD CDSAV) of C)) + else (BITBLT SOLOW X Y (fetch (CARD CDSAV) of C) NIL NIL NIL NIL 'INPUT 'REPLACE) (BITBLT (fetch FACE of C) NIL NIL SOLOW X Y NIL NIL 'INPUT 'REPLACE)) @@ -264,7 +264,8 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. (PUSHCARD S2 (CAR L]) (UPCARD - [LAMBDA (X Y) (* lmm " 6-Aug-85 00:04") + [LAMBDA (X Y) (* ; "Edited 14-Jun-2024 15:46 by rmk") + (* lmm " 6-Aug-85 00:04") (* Brings up X image which is assumed to be overlapped by Y image.  Assumes YOFFSET only) @@ -272,14 +273,14 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. (if Y then (PROG [(DY (IDIFFERENCE (fetch CY of X) (fetch CY of Y] - (BITBLT (fetch SAV of X) - 0 0 (fetch SAV of Y) + (BITBLT (fetch (CARD CDSAV) of X) + 0 0 (fetch (CARD CDSAV) of Y) 0 DY CardWidth (IDIFFERENCE CardHeight DY) 'INPUT 'REPLACE) (BITBLT SOLOW (fetch CX of X) (fetch CY of X) - (fetch SAV of X) + (fetch (CARD CDSAV) of X) 0 0 CardWidth (IDIFFERENCE CardHeight DY) 'INPUT 'REPLACE) @@ -308,7 +309,8 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. (RETURN T]) (NXTCARD - [LAMBDA (S) (* bas%: "15-Jan-86 21:44") + [LAMBDA (S) (* ; "Edited 14-Jun-2024 15:46 by rmk") + (* bas%: "15-Jan-86 21:44") (PROG1 (pop (fetch FACEDOWN of S)) [if (fetch FACEDOWN of S) else @@ -335,7 +337,7 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. 'REPLACE) (if (fetch FACEUP of S) then (BLTSHADE (DSPTEXTURE NIL SOLOW) - (fetch SAV of (BOTTOM S)) + (fetch (CARD CDSAV) of (BOTTOM S)) 0 (IMINUS (fetch YO of S)) (IDIFFERENCE CardWidth (fetch XO of S)) @@ -531,7 +533,7 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. (DECLARE%: EVAL@COMPILE -(DATATYPE CARD (SUIT RANK FACE SAV CX CY) +(DATATYPE CARD (SUIT RANK FACE CDSAV CX CY) (ACCESSFNS CARD (COLOR (ILESSP (fetch SUIT of DATUM) Diamonds)))) @@ -642,15 +644,14 @@ Copyright (c) 1982, 1985-1986 by Xerox Corporation. (RPAQ? SOLORESULTS ) (ADDTOVAR IDLE.FUNCTIONS ("Solitaire" 'SOLO)) -(PUTPROPS SOLITAIRE COPYRIGHT ("Xerox Corporation" 1982 1985 1986)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1950 4087 (SOLO 1960 . 3297) (SOLITAIRE 3299 . 4085)) (4088 20454 (CARDIMAGE 4098 . -5754) (COUNTCARDS 5756 . 5969) (CREATEHAND 5971 . 6576) (CREATESTACK 6578 . 7427) (DEALDECK 7429 . -8012) (FLIPSTACK 8014 . 8249) (GETCARD 8251 . 8701) (GOODMOVE? 8703 . 9100) (HTOS? 9102 . 9269) ( -MOVECARD 9271 . 9910) (DOMOVE 9912 . 11543) (MOVEHS 11545 . 11816) (MOVES 11818 . 12129) (MOVES1 12131 - . 12433) (UPCARD 12435 . 13651) (MOVESSS 13653 . 14595) (NXTCARD 14597 . 16369) (PUSHCARD 16371 . -17033) (POSTVALUE 17035 . 18036) (SEARCHSTACKS 18038 . 18281) (SHOWCARDSTACK 18283 . 18912) ( -SHUFFLEDECK 18914 . 19718) (STACKLOC 19720 . 20052) (STOS? 20054 . 20316) (TOPSUITSTACK 20318 . 20452) -) (20455 22457 (HIST 20465 . 22054) (ARRAYMAX 22056 . 22455)) (22479 24001 (SHOWCONFIG 22489 . 22951) -(PRINTCARDSTACK 22953 . 23305) (CARDNAME 23307 . 23999))))) + (FILEMAP (NIL (1885 4022 (SOLO 1895 . 3232) (SOLITAIRE 3234 . 4020)) (4023 20888 (CARDIMAGE 4033 . +5689) (COUNTCARDS 5691 . 5904) (CREATEHAND 5906 . 6511) (CREATESTACK 6513 . 7362) (DEALDECK 7364 . +7947) (FLIPSTACK 7949 . 8184) (GETCARD 8186 . 8754) (GOODMOVE? 8756 . 9153) (HTOS? 9155 . 9322) ( +MOVECARD 9324 . 10090) (DOMOVE 10092 . 11723) (MOVEHS 11725 . 11996) (MOVES 11998 . 12309) (MOVES1 +12311 . 12613) (UPCARD 12615 . 13967) (MOVESSS 13969 . 14911) (NXTCARD 14913 . 16803) (PUSHCARD 16805 + . 17467) (POSTVALUE 17469 . 18470) (SEARCHSTACKS 18472 . 18715) (SHOWCARDSTACK 18717 . 19346) ( +SHUFFLEDECK 19348 . 20152) (STACKLOC 20154 . 20486) (STOS? 20488 . 20750) (TOPSUITSTACK 20752 . 20886) +) (20889 22891 (HIST 20899 . 22488) (ARRAYMAX 22490 . 22889)) (22913 24435 (SHOWCONFIG 22923 . 23385) +(PRINTCARDSTACK 23387 . 23739) (CARDNAME 23741 . 24433))))) STOP diff --git a/lispusers/SOLITAIRE.LCOM b/lispusers/SOLITAIRE.LCOM index 55216b3ee060a0a3fb34ed7a80c686f4236daca4..626cc912f5ac4bf845dc200b77b3d3d537a929c2 100644 GIT binary patch delta 1118 zcmah{OK;Oa5N`TV)gTa1DyWdk)F3rEB=WB9_)%1`u{X&g*EaUHX$ul+Nkl8!wCV!{ z2u0$?1tIbyxD$@tx$pCW!X-qv=#2D=TA;Bj@4Ixby(a&>#_VDIRlzJIU~`7Yyxg)~2} zW+5&8R!LDT*^uBcF0?&YgDp{~wB))ln3r$n^Agn755+@&DS#9yo6eM&OYM*nPMtrJ zRKwD=|Mv%2#~K2QI*jLvtFXUw4=lSvyk?n3IqpLy9a7s5od|3aI$6k+ya>va#~v*D z%QP{Tg5>9|B=Ia*K}eUGzZB&h(H%%w&5@(Kv6vWS(V1!?U4ryK)EkTC!|kuBS7TF* z7hMimHKEusk!eEv_4vv0iH>hzXum&oVz`@$46UE3>Cpam`swhw?oFikpn?JI=aae7 z)VtQ(^9xfGL*o0;82P*zq+>JjTayVNG zfG`m^6bNbH5}S%Gg$i|-DQ7kj+X2YbKyvEqHK^aOH)a9EzM_ID&cqUON@O#JHy*+j z0V%i#A-Vl&8d6<#RiWcWp%(= zL$V1Z49Th=vNDJr8E}-26R|ZKYnC93WCe720MLx%<`rdN6s^mE<`ttaHAWc9;-Sve YkTx&`aj!QJ4fo9U8~8Ck>M=L{6IZDmb^rhX delta 1236 zcmb7EO=}ZT6m8mS=txC$(GMZq4vLA8koV>@QG+itFUgo`W}KO(A1Iib!3NT#q^(#* z0{#KT;J&zVA+Gu-gzklI-RQy}(1i=%B%L%?H_hU4?>XJUfW@x{a*ov zPjK;qVN%VZ#G`s|KQh}rUu%G6RTUtsl}M#X-K1whoGVmZVEtR5Q)22=D?^cb8gcXl z#H+;VlLK*@wdf`wYdf@RSW9kFCq<6}kEG;-S}Uo_eW|!Fl{;5s=-?>w>B9AL-th9K z2UyHNK1@(1NDe+kr=!y$rs4qleEHJ&@C;I=ku#DKY&g8~W_&(8gHV8-d_h(NzIH7+ z89D5|oypBz9Am$)Q%9|dpBpw8Bm;!&eV=*R&0u&`Sfh?*17b3D*S2ix5YMnGfRqf_ zj!{8?WF?HGAtt0l3=gBU_;-nn08F-9B02>{3b=w*@qmdKguUb0YF7oD7z|YvaHwq( zje?qnV53f5%`t4xazMss5hOv0npNr<8e#Vb0y}x#uhqeS?za{I*!@O|z}9{wv50I0 z^!gs$V3Z&as7XLbJoqvPk>M1?{uI8=S0*Bpy_>OxXlPkE=0zU&_G9@IWUBWgcE7tj z7RMs&bZ8cPF0g2^UaipPz7I%I!S$HM#brbHO8s_2j}TL=J7n23Dijdw z=rlnHh~tn|%Q1?8()UKwj5Od}V~yE(k}Q%HQ1A#Lr-$9X2lRwh51q$Ih9avym>J5T ze{GkBn~`uDOX3g~gfoW@n(#YXirY(`&2HMry93R#SDA{E$NrjD{7(A?Xzk8cyHnd~ Wv|DUQ8TKI9A_a?_NN^Ry