.SEGMENT "FOOZLE" .FUNCT CAVE-IN-F,RARG EQUAL? RARG,M-END \FALSE IN? PIT-BOMB,LOCAL-GLOBALS \FALSE ZERO? LIT /FALSE ICALL2 SETUP-ORPHAN,STR?44 IN? JESTER,HERE /FALSE SUB MOVES,J-DISPOSED GRTR? STACK,3 \FALSE MOVE JESTER,HERE ICALL2 THIS-IS-IT,JESTER ICALL2 DEQUEUE,I-JESTER ICALL1 RETURN-FROM-MAP PRINTR " The jester is here. ""I'm glad you decided to drop in! As you see, the ceiling decided to drop in some time ago."" He sits cross-legged on a piece of rubble. ""Time for a guessing contest. If you can guess my middle name, I'll give you a prize for winning this game!""" .SEGMENT "0" .FUNCT PIT-BOMB-F EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTR "The grenade-sized bomb bears a large label." ?CCL3: EQUAL? PRSA,V?THROW \FALSE REMOVE PIT-BOMB SET 'PIT-BOMB-LOC,HERE ZERO? LIT /?CCL8 PRINTI "The bomb silently explodes into a growing cloud of bottomless-pit-filling agents. " JUMP ?CND6 ?CCL8: PRINTI "You feel a brief puff of air from the direction in which you threw the bomb. " ?CND6: EQUAL? HERE,PITS \?CCL11 ZERO? LIT \?CCL14 CALL2 JIGS-UP,STR?623 RSTACK ?CCL14: FCLEAR LANTERN,TRYTAKEBIT FSET PITS,REDESCBIT SET 'COMPASS-CHANGED,TRUE-VALUE PRINTI "As the pits fill in, from the bottom up, dark and sinister forms well up and lurk quickly into the shadows. Uncountable hordes of the creatures emerge, and your light glints momentarily off slavering fangs. Gurgling noises come from every dark corner as the last of the pits becomes filled in." CRLF ICALL2 INC-SCORE,12 CRLF CALL1 V-LOOK RSTACK ?CCL11: PRINTR "The agents, finding no bottomless pits here, disperse." .ENDSEG .SEGMENT "FOOZLE" .FUNCT TOLL-PLAZA-F,RARG EQUAL? RARG,M-LOOK \FALSE PRINTI "You have reached one of numerous Great Underground Highway system tolls. " FSET? TOLL-GATE,OPENBIT \?CCL6 PRINTI "The gate lies open to the south" JUMP ?CND4 ?CCL6: PRINTI "A closed toll gate spans the road" ?CND4: PRINTI ". The toll booth is unoccupied, but a sign next to the gate indicates an ""exact change"" option." RTRUE .FUNCT TOLL-BOOTH-F EQUAL? PRSA,V?ENTER \?CCL3 PRINTR "An invisible force stops you." ?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "The booth is unmanned, but there is an ""exact change"" basket on the side of the booth." .FUNCT TOLL-GATE-F EQUAL? PRSA,V?OPEN \?PRD5 FSET? TOLL-GATE,OPENBIT \?CCL3 ?PRD5: EQUAL? PRSA,V?CLOSE \FALSE FSET? TOLL-GATE,OPENBIT \FALSE ?CCL3: PRINT WONT-BUDGE RTRUE .FUNCT BASKET-F EQUAL? PRSA,V?CLOSE \?CCL3 PRINT HUH RTRUE ?CCL3: EQUAL? PRSA,V?PUT \FALSE EQUAL? PRSO,ZORKMID-COIN \FALSE REMOVE ZORKMID-COIN FSET TOLL-GATE,OPENBIT PRINTI """Bink!"" The toll gate opens, and a poorly maintained sign lights up momentarily, saying ""T ANK Y U!""" CRLF CALL2 INC-SCORE,14 RSTACK .FUNCT FISSURE-PS EQUAL? PRSA,V?ENTER \?CCL3 CALL2 DO-WALK,P?DOWN RSTACK ?CCL3: EQUAL? PRSA,V?CROSS \FALSE CALL2 DO-WALK,P?SOUTH RSTACK .FUNCT FISSURE-CRACK-PS EQUAL? PRSA,V?EXAMINE \?CCL3 PRINTR "You could probably squeeze into it." ?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL5 CALL2 LIT?,TIGHT-SQUEEZE ZERO? STACK /?CCL8 PRINT SOME-LIGHT RTRUE ?CCL8: PRINT ONLY-BLACKNESS RTRUE ?CCL5: EQUAL? PRSA,V?ENTER \FALSE CALL2 DO-WALK,P?EAST RSTACK .FUNCT ICE-PS PRINTR "[This is just one of those things that's there to enhance your mental imagery.]" .SEGMENT "0" .FUNCT ORB-F EQUAL? PRSA,V?TAKE \?CCL3 FSET PRSO,TRYTAKEBIT FCLEAR GLITTERY-ORB,NDESCBIT FCLEAR FIERY-ORB,NDESCBIT FCLEAR SMOKY-ORB,NDESCBIT FCLEAR MILKY-ORB,TRYTAKEBIT FCLEAR GLITTERY-ORB,TRYTAKEBIT FCLEAR FIERY-ORB,TRYTAKEBIT FCLEAR SMOKY-ORB,TRYTAKEBIT FSET MILKY-ORB,TOUCHBIT FSET GLITTERY-ORB,TOUCHBIT FSET FIERY-ORB,TOUCHBIT FSET SMOKY-ORB,TOUCHBIT RFALSE ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7 PRINTI "The orb is a sphere of lustrous crystal without imperfection." ZERO? TIME-STOPPED \?CCL10 PRINTC 32 ICALL PERFORM,V?LOOK-INSIDE,PRSO RTRUE ?CCL10: CRLF RTRUE ?CCL7: EQUAL? PRSA,V?LOOK-INSIDE \?CCL12 ZERO? TIME-STOPPED /?CCL15 PRINTI "The sphere has" JUMP ?CND13 ?CCL15: PRINTI "Deep within the cool, smooth surface of the orb lies an ever-shifting dance of " EQUAL? PRSO,GLITTERY-ORB \?CCL18 PRINTI "sparkling stars" JUMP ?CND16 ?CCL18: EQUAL? PRSO,FIERY-ORB \?CCL20 PRINTI "flickering flames" JUMP ?CND16 ?CCL20: EQUAL? PRSO,SMOKY-ORB \?CCL22 PRINTI "swirling smoke" JUMP ?CND16 ?CCL22: PRINTI "milky mists" ?CND16: PRINTI ", giving the sphere" ?CND13: PRINTI " a generally " EQUAL? PRSO,GLITTERY-ORB \?CCL25 PRINTI "golden" JUMP ?CND23 ?CCL25: EQUAL? PRSO,FIERY-ORB \?CCL27 PRINTI "orange" JUMP ?CND23 ?CCL27: EQUAL? PRSO,SMOKY-ORB \?CCL29 PRINTI "gray" JUMP ?CND23 ?CCL29: PRINTI "white" ?CND23: PRINTR " complexion." ?CCL12: EQUAL? PRSA,V?MUNG \FALSE EQUAL? PRSO,SMOKY-ORB,FIERY-ORB,MILKY-ORB /?CCL31 EQUAL? PRSO,GLITTERY-ORB \FALSE ?CCL31: REMOVE PRSO PRINTI "You " EQUAL? PRSO,MILKY-ORB \?CCL38 PRINTI "feel a puff of cool, caressing air" JUMP ?CND36 ?CCL38: EQUAL? PRSO,FIERY-ORB \?CCL40 PRINTI "feel a hot dry blast of air" JUMP ?CND36 ?CCL40: EQUAL? PRSO,SMOKY-ORB \?CCL42 PRINTI "smell a dry burnt odor" JUMP ?CND36 ?CCL42: PRINTI "see a burst of twinkling lights" ?CND36: PRINTR " as the orb is shattered to dust." .ENDSEG .SEGMENT "FOOZLE" .FUNCT REST-STOP-PS EQUAL? PRSA,V?ENTER,V?EXAMINE \?CCL3 PRINTR "The rest stop is all shuttered up." ?CCL3: EQUAL? PRSA,V?OPEN \?CCL5 PRINT CARPENTERS RTRUE ?CCL5: EQUAL? PRSA,V?SEARCH \FALSE PRINTR "You're outside it!" .FUNCT SHUTTER-PS EQUAL? PRSA,V?REMOVE,V?TAKE \?CCL3 PRINT CARPENTERS RTRUE ?CCL3: EQUAL? PRSA,V?CLOSE \FALSE PRINTR "They are!" .FUNCT FISHING-VILLAGE-F,RARG EQUAL? RARG,M-ENTER \FALSE FSET? FISHING-VILLAGE,TOUCHBIT /?CND4 RANDOM 100 >INQ-NUMBER RANDOM 3 ADD STACK,2 >NUMBER-ON-LINE ?CND4: CALL QUEUE,I-INQ,-1 RSTACK .FUNCT I-INQ,NEW-PERSONS,DOABLE EQUAL? HERE,INQUISITION,FISHING-VILLAGE /?CCL3 ICALL2 DEQUEUE,I-INQ RFALSE ?CCL3: LESS? NUMBER-ON-LINE,3 /?CCL4 RANDOM 100 LESS? 75,STACK /?PRD7 EQUAL? NUMBER-ON-LINE,3 /?CCL4 ?PRD7: RANDOM 100 LESS? 50,STACK /?PRD10 EQUAL? NUMBER-ON-LINE,4 /?CCL4 ?PRD10: RANDOM 100 LESS? 25,STACK /?CND1 EQUAL? NUMBER-ON-LINE,5 \?CND1 ?CCL4: RANDOM 100 LESS? 50,STACK /?CCL17 SET 'NEW-PERSONS,1 JUMP ?CND15 ?CCL17: RANDOM 100 LESS? 80,STACK /?CCL19 SET 'NEW-PERSONS,2 JUMP ?CND15 ?CCL19: SET 'NEW-PERSONS,3 ?CND15: ADD NUMBER-ON-LINE,NEW-PERSONS >NUMBER-ON-LINE ?CND1: INC 'INQ-NUMBER EQUAL? HERE,FISHING-VILLAGE \?CCL22 GRTR? NEW-PERSONS,0 \?CCL22 ICALL1 RETURN-FROM-MAP PRINTI " A trollish guard drags " EQUAL? NEW-PERSONS,1 \?CCL27 PRINTI "someone" JUMP ?CND25 ?CCL27: EQUAL? NEW-PERSONS,2 \?CCL29 PRINTI "two people" JUMP ?CND25 ?CCL29: PRINTI "three people" ?CND25: PRINTR ", kicking and screaming, into the stone building." ?CCL22: EQUAL? HERE,INQUISITION \?CND20 GRTR? NEW-PERSONS,0 \?CND20 ICALL1 RETURN-FROM-MAP PRINTI " A trollish guard drags in " EQUAL? NEW-PERSONS,1 \?CCL35 PRINTI "someone" JUMP ?CND33 ?CCL35: EQUAL? NEW-PERSONS,2 \?CCL37 PRINTI "two people" JUMP ?CND33 ?CCL37: PRINTI "three people" ?CND33: PRINTI ", who obediently take" EQUAL? NEW-PERSONS,1 \?CCL40 PRINTI "s a number" JUMP ?CND38 ?CCL40: PRINTI " numbers" ?CND38: PRINTI " from the number dispenser." CRLF ?CND20: EQUAL? HERE,INQUISITION \FALSE ICALL1 RETURN-FROM-MAP GRTR? NUMBER-TAKEN,0 \?CND44 GRTR? INQ-NUMBER,NUMBER-TAKEN \?CND44 ICALL2 JIGS-UP,STR?637 ?CND44: PRINTI " The executioner calls out, ""Number " PRINTN INQ-NUMBER PRINTI "!"" and " EQUAL? INQ-NUMBER,NUMBER-TAKEN \?CCL50 PRINTI "looks at you with an ugly grin" JUMP ?CND48 ?CCL50: RANDOM 100 LESS? 20,STACK /?CCL52 ZERO? J-INQ-SCENE \?CCL52 FSET? JESTER,TOUCHBIT \?CCL52 SET 'J-INQ-SCENE,TRUE-VALUE PRINTI "you suddenly realize that the next person on line is the jester! He is acting like a first-class sinner: smoking and drinking, using foul language, with a curvaceous woman in each arm and a pocketful of gambling receipts. He strides forward and makes a particularly salacious request -- something involving Vaseline and barnyard animals. His request denied, he is led to the block, but just as the axe is swinging down, the jester turns into a wisp of smoke and vanishes! The executioner spits angrily" JUMP ?CND48 ?CCL52: DEC 'NUMBER-ON-LINE PRINTI "a bedraggled man steps forward. ""Executioner, " RANDOM 100 LESS? 50,STACK /?CCL58 SET 'DOABLE,TRUE-VALUE CALL2 PICK-ONE,DOABLE-REQUESTS PRINT STACK JUMP ?CND56 ?CCL58: CALL2 PICK-ONE,UNDOABLE-REQUESTS PRINT STACK ?CND56: PRINTI ","" he croaks. The executioner says, """ ZERO? DOABLE /?CCL61 PRINTI "Done!"" and the man is led to the gallows and hung from the neck until dead" JUMP ?CND48 ?CCL61: PRINTI "Sorry, can't do that."" The man is placed on the block, and a moment later his head is rolling away" ?CND48: PRINT PERIOD-CR RTRUE .FUNCT INQUISITION-F,RARG,OWINNER,TAKER EQUAL? RARG,M-LOOK \?CCL3 FSET? INQUISITION,TOUCHBIT /?CND4 PRINTI "Extremist religions spring up whenever an empire collapses. The Inquisitors believe the impending doom was caused by widespread sinning, but that the gods can be placated if every person in the kingdom is executed." CRLF PRINTI " " ?CND4: PRINTI "This is one of the Inquisitors' execution sites. A hooded executioner, dripping with sweat and blood, stands between a gallows and a block. " PRINTN NUMBER-ON-LINE PRINTI " people are queued up in front of the executioner. " GRTR? NUMBER-TAKEN,0 \?CND6 PRINTI "You are " SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,7 \?CCL10 PRINTI "seventh" JUMP ?CND8 ?CCL10: SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,6 \?CCL12 PRINTI "sixth" JUMP ?CND8 ?CCL12: SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,5 \?CCL14 PRINTI "fifth" JUMP ?CND8 ?CCL14: SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,4 \?CCL16 PRINTI "fourth" JUMP ?CND8 ?CCL16: SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,3 \?CCL18 PRINTI "third" JUMP ?CND8 ?CCL18: SUB NUMBER-TAKEN,INQ-NUMBER EQUAL? STACK,2 \?CCL20 PRINTI "second" JUMP ?CND8 ?CCL20: PRINTI "first" ?CND8: PRINTI " on line. " ?CND6: PRINTI "Near the end of the line is a number dispenser. A large sign fills one wall. The only exit is south." RTRUE ?CCL3: EQUAL? RARG,M-END \FALSE ICALL1 RETURN-FROM-MAP ZERO? INQ-SCORE \?CND23 PRINTI " The executioner spots you. ""Get that joker outta here!"" Guards fling you back onto the street." CRLF CRLF ICALL2 GOTO,FISHING-VILLAGE RTRUE ?CND23: SET 'OWINNER,WINNER SET 'WINNER,EXECUTIONER CALL2 VISIBLE?,PIGEON ZERO? STACK /?CND25 PRINTI " One of the guards says, ""Sorry, you'll have to leave your pigeon outside."" He grabs it and " CALL2 META-LOC,PERCH EQUAL? STACK,HERE \?CCL29 PRINTI "tosses it outside" CALL FIND-IN,FISHING-VILLAGE,WHITEBIT >TAKER ZERO? TAKER \?CTR31 CALL FIND-IN,FISHING-VILLAGE,BLACKBIT >TAKER ZERO? TAKER /?CCL32 ?CTR31: MOVE PIGEON,TAKER PRINTI ". A moment later," ICALL2 TPRINT,TAKER PRINTI " materializes in the Inquisition building, holding the perch! The executioner bellows, ""Hey! We don't want any of your kind in here, buster!"" A guard gives" ICALL2 TPRINT,TAKER PRINTI " the boot." CRLF JUMP ?CND27 ?CCL32: MOVE PIGEON,FISHING-VILLAGE JUMP ?CND27 ?CCL29: CALL2 META-LOC,PERCH MOVE PIGEON,STACK PRINTI "looks stunned as he recedes and vanishes, along with the pigeon" ?CND27: PRINT PERIOD-CR ?CND25: CALL2 VISIBLE?,CLOAK ZERO? STACK /?CND35 CALL FIND-IN,FISHING-VILLAGE,WHITEBIT >TAKER ZERO? TAKER \?CTR38 CALL FIND-IN,FISHING-VILLAGE,BLACKBIT >TAKER ZERO? TAKER /?CCL39 ?CTR38: MOVE CLOAK,TAKER JUMP ?CND37 ?CCL39: MOVE CLOAK,FISHING-VILLAGE ?CND37: PRINTI " A particularly surly-looking guard says, ""Check your cloak in our coat room, haw haw haw."" He grabs the cloak and kicks it through the door." CRLF ?CND35: SET 'WINNER,OWINNER LESS? NUMBER-TAKEN,-2 \?CCL44 CALL2 JIGS-UP,STR?645 RSTACK ?CCL44: LESS? NUMBER-TAKEN,1 \FALSE ZERO? NUMBER-TAKEN /?CND47 PRINTI " A guard pokes you with his spear. ""Hey, take a number.""" CRLF ?CND47: DEC 'NUMBER-TAKEN RETURN NUMBER-TAKEN .SEGMENT "0" .FUNCT TICKET-F EQUAL? PRSA,V?TAKE \?CCL3 EQUAL? HERE,INQUISITION \?CCL3 GRTR? NUMBER-TAKEN,0 /?CCL8 ADD INQ-NUMBER,NUMBER-ON-LINE >NUMBER-TAKEN FCLEAR TICKET,NDESCBIT FCLEAR TICKET,TRYTAKEBIT MOVE TICKET,PROTAGONIST PRINTI "You get number " PRINTN NUMBER-TAKEN PRINT PERIOD-CR RTRUE ?CCL8: CALL NOUN-USED?,TICKET,W?NUMBER ZERO? STACK /FALSE PRINTR "A guard lightly bludgeons your hand. ""One number per person!""" ?CCL3: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE FSET? TICKET,NDESCBIT \?CCL15 PRINTR "You haven't taken one yet!" ?CCL15: PRINTI "The ticket has a large number """ PRINTN NUMBER-TAKEN PRINTR """ on it. In smaller type, it says, ""Frobozz Magic Inquisition Numbered Ticket Company.""" .FUNCT SQUID-REPELLENT-F EQUAL? PRSA,V?SMELL,V?TASTE \FALSE PRINTR "Not being a squid, you're not repelled." .ENDSEG .SEGMENT "FOOZLE" .FUNCT EXECUTIONER-F,ARG EQUAL? ARG,M-WINNER \FALSE EQUAL? NUMBER-TAKEN,INQ-NUMBER \?CCL6 EQUAL? PRSA,V?BEHEAD \?PRD11 EQUAL? PRSO,ME /?CTR8 ?PRD11: EQUAL? PRSA,V?CUT \?CCL9 EQUAL? PRSO,HEAD \?CCL9 CALL ADJ-USED?,HEAD,W?MY,W?MINE,FALSE-VALUE ZERO? STACK /?CCL9 ?CTR8: PRINTI "The executioner says, ""Hey, sure! Easy request! I can behead ya!"" Then a confused look creeps over his face. ""But if I behead ya, then I done granted yer last wish, and I gotta hang ya! But if I hang ya, I ain't granted yer wish, and I gotta behead ya! But..."" He trails off. ""Guards, throw this wise guy outta here!"" Guards surround you and escort you out." CRLF ICALL2 INC-SCORE,INQ-SCORE SET 'INQ-SCORE,0 CRLF CALL2 GOTO,FISHING-VILLAGE RSTACK ?CCL9: CALL1 DOABLE-REQUEST ZERO? STACK /?CCL18 CALL2 JIGS-UP,STR?649 RSTACK ?CCL18: CALL1 UNDOABLE-REQUEST ZERO? STACK \?CTR19 RANDOM 100 LESS? 50,STACK /?CCL20 ?CTR19: CALL2 JIGS-UP,STR?650 RSTACK ?CCL20: CALL2 JIGS-UP,STR?649 RSTACK ?CCL6: PRINTI """Shut up until your number is called!""" CRLF CALL1 STOP RSTACK .FUNCT DOABLE-REQUEST EQUAL? PRSA,V?KILL,V?KICK,V?KISS /?PRD5 EQUAL? PRSA,V?HANG \?CCL3 ?PRD5: EQUAL? PRSO,ME /TRUE ?CCL3: EQUAL? PRSA,V?SING \FALSE EQUAL? PRSO,LULLABY /TRUE RFALSE .FUNCT UNDOABLE-REQUEST EQUAL? PRSA,V?GIVE \?CCL3 EQUAL? PRSO,ME \?CCL3 EQUAL? PRSI,THOUSAND-ZORKMIDS,POSTER /TRUE ?CCL3: EQUAL? PRSA,V?UNTIE,V?SEND \?CCL8 EQUAL? PRSO,ME /TRUE ?CCL8: EQUAL? PRSA,V?POINT \?CCL12 EQUAL? PRSO,WAND \?CCL12 EQUAL? PRSI,ME /TRUE ?CCL12: EQUAL? PRSA,V?WEAR \?CCL17 EQUAL? PRSO,RING /TRUE ?CCL17: EQUAL? PRSA,V?CUT \?CCL21 EQUAL? PRSO,HEAD \?CCL21 CALL2 GET-OWNER,HEAD EQUAL? STACK,EXECUTIONER /TRUE ?CCL21: EQUAL? PRSA,V?KILL \FALSE EQUAL? PRSO,EXECUTIONER /TRUE RFALSE .FUNCT CASINO-F,RARG EQUAL? RARG,M-END \FALSE IN? BROOM,LOCAL-GLOBALS \FALSE IN? JESTER,HERE /FALSE MOVE JESTER,HERE ICALL2 DEQUEUE,I-JESTER ICALL2 THIS-IS-IT,JESTER ICALL1 RETURN-FROM-MAP PRINTI " You do a " SUB MOVES,J-DISPOSED LESS? STACK,4 \?CCL9 PRINTI "triple" JUMP ?CND7 ?CCL9: PRINTI "double" ?CND7: PRINTR " take as you notice the jester at the card table, grandly shuffling a thick deck. ""I don't wear any Gucci, I can't dance the hootchy-kootchy, I've never been good at the old smoochie-woochie, but I sure am a whiz at Double Fanucci! When I start to deal, the tension is real; if you can stand the heat, pull up a seat!"" He motions for you to sit down at the table." .FUNCT DOUBLE-FANUCCI-F EQUAL? PRSA,V?PLAY \FALSE EQUAL? HERE,CASINO \?CCL6 IN? JESTER,HERE \?CCL6 IN? BROOM,LOCAL-GLOBALS \?CCL6 LOC PROTAGONIST EQUAL? STACK,CARD-TABLE \?CCL12 ICALL1 F-START RTRUE ?CCL12: ICALL PERFORM,V?ENTER,CARD-TABLE RTRUE ?CCL6: PRINTR "You don't have a pack of Fanucci cards; besides, there's no solitaire version of Double Fanucci." .FUNCT CARD-TABLE-F,VARG EQUAL? VARG,M-ENTER \?CCL3 IN? BROOM,LOCAL-GLOBALS \?CCL3 CALL1 F-START RSTACK ?CCL3: ZERO? VARG \FALSE EQUAL? PRSA,V?EXAMINE \FALSE PRINTI "It's a pretty plain and ordinary card table." FIRST? CARD-TABLE \?CCL12 PRINTI " Sitting on the card table is" ICALL1 D-NOTHING RTRUE ?CCL12: CRLF RTRUE .FUNCT F-START,MARGIN PRINTI " The jester begins dealing. ""We'll be playing according to Revised Miznian Rules, Seventh-Level Amendments, with these exceptions: no side-handling after an underfunded discard, two draws after a Skybreaker, and an extra muttonation if the conditions of Rule 17.4.1.B are met. Oh, also all the house rules adopted by the Fanucci Casino Rebuilding Act of 817." CRLF CRLF ICALL2 HIT-ANY-KEY,STR?655 ICALL1 SETUP-CARDS ICALL1 SETUP-FANUCCI ICALL1 FANUCCI SCREEN S-WINDOW FONT 1 SCREEN S-TEXT CRLF CRLF ICALL1 HIT-ANY-KEY ICALL2 INIT-SL-WITH-SPLIT,TEXT-WINDOW-PIC-LOC FSET? BROOM,TRYTAKEBIT \?CCL3 PUT DRAW-CARDS-TABLE,0,1 PUT DRAW-CARDS-TABLE,1,1 PUT DRAW-CARDS-TABLE,2,1 PUT DRAW-CARDS-TABLE,3,1 PUT DRAW-CARDS-TABLE,4,1 PRINTI """W" GRTR? F-PLAYS,5 \?CCL6 PRINTI "he" JUMP ?CND4 ?CCL6: PRINTC 111 ?CND4: PRINTI "w!"" says the jester. """ GRTR? F-PLAYS,5 \?CCL9 PRINTR "You really had me on the ropes at a few points there!""" ?CCL9: PRINTR "I wasn't expecting such an early resignation! I'm amazed by my own Fanucci prowess!""" ?CCL3: MOVE BROOM,CARD-TABLE ICALL1 REMOVE-J PRINTI """Great Zilbo's Ghost! Three undertrumps after a Trebled Fromp discard! That's indefensible!"" In the time-honored tradition of Double Fanucci matches, the jester leaps over the card table to congratulate you. ""You've swept me away! You've truly cleaned up today!"" He rifles through his wallet and removes a broom, which he lays on the card table. ""Here are your winnings!"" In a wink, the jester is gone.""" CRLF CRLF CALL2 INC-SCORE,18 RSTACK .FUNCT SETUP-CARDS ICALL SPLIT-BY-PICTURE,F-SPLIT,TRUE-VALUE ICALL2 ADJUST-TEXT-WINDOW,F-BOTTOM CLEAR S-FULL ICALL2 PICK-RANK,0 RANDOM 15 PUT F-CARD-TABLE,1,STACK ICALL2 PICK-RANK,2 RANDOM 15 PUT F-CARD-TABLE,3,STACK ICALL2 PICK-RANK,4 RANDOM 15 PUT F-CARD-TABLE,5,STACK ICALL2 PICK-RANK,6 RANDOM 15 PUT F-CARD-TABLE,7,STACK ICALL2 PICK-RANK,8 RANDOM 15 PUT F-CARD-TABLE,9,STACK SET 'J-SCORE,0 SET 'YOUR-SCORE,0 SET 'F-PLAYS,0 RETURN F-PLAYS .FUNCT SETUP-FANUCCI,MARGIN,CARD-NUM-Y,DISCARD-X,CARD-NUM-1-X,CARD-SPACE,?TMP2,?TMP1 SCREEN S-FULL DISPLAY F-BORDER,1,1 SCREEN S-WINDOW PICSET F-PICSET-TBL FONT 4 ICALL2 PICINF-PLUS-ONE,J-SCORE-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 CURSET ?TMP1,STACK PRINTI "Jester's Score:" ICALL2 PICINF-PLUS-ONE,YOUR-SCORE-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 CURSET ?TMP1,STACK PRINTI "Your Score:" ICALL2 PICINF-PLUS-ONE,F-DISCARD-LOC GET PICINF-TBL,0 >CARD-NUM-Y GET PICINF-TBL,1 >DISCARD-X ICALL2 PICINF-PLUS-ONE,F-CARD-1-LOC GET PICINF-TBL,1 >CARD-NUM-1-X PICINF F-CARD-SPACE,PICINF-TBL /?BOGUS1 ?BOGUS1: GET PICINF-TBL,1 >CARD-SPACE ICALL1 UPDATE-SCORES ICALL1 DRAW-CARDS CURSET CARD-NUM-Y,DISCARD-X PRINTI "DISCARD" CURSET CARD-NUM-Y,CARD-NUM-1-X PRINTC 49 ADD CARD-NUM-1-X,CARD-SPACE CURSET CARD-NUM-Y,STACK PRINTC 50 MUL CARD-SPACE,2 ADD CARD-NUM-1-X,STACK CURSET CARD-NUM-Y,STACK PRINTC 51 MUL CARD-SPACE,3 ADD CARD-NUM-1-X,STACK CURSET CARD-NUM-Y,STACK PRINTC 52 ICALL2 PICINF-PLUS-ONE,F-MENU-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 CURSET ?TMP1,STACK PRINTI " DRAW REVERSE COMBINE SINGLE-PLAY IONIZE" GET PICINF-TBL,0 ADD STACK,FONT-Y >?TMP1 GET PICINF-TBL,1 CURSET ?TMP1,STACK PRINTI " DISCARD TRUMP PASS DOUBLE-PLAY CHEAT" GET PICINF-TBL,0 >?TMP2 MUL FONT-Y,2 ADD ?TMP2,STACK >?TMP1 GET PICINF-TBL,1 CURSET ?TMP1,STACK PRINTI " DIVIDE UNDERTRUMP OVERPASS MUTTONATE RESIGN" SCREEN S-TEXT CURSET 1,1 RTRUE .FUNCT DRAW-CARDS,X,CNT,?TMP1 ?PRG1: GRTR? CNT,4 /?CCL5 GET F-PIC-LOCS,CNT >X JUMP ?CND3 ?CCL5: GET F-PIC-LOCS,4 >X ?CND3: ICALL2 PICINF-PLUS-ONE,X GET PICINF-TBL,1 >X EQUAL? CNT,5 /TRUE GET DRAW-CARDS-TABLE,CNT EQUAL? STACK,1 \?CND6 PUT DRAW-CARDS-TABLE,CNT,0 MUL CNT,2 >?TMP1 MUL CNT,2 ADD STACK,1 ICALL DRAW-CARD,X,?TMP1,STACK ?CND6: INC 'CNT JUMP ?PRG1 .FUNCT PICK-RANK,NUM RANDOM 100 LESS? PICTURE-CARD-PROB,STACK /?CCL3 RANDOM 9 ADD 11,STACK JUMP ?CND1 ?CCL3: RANDOM 11 ?CND1: PUT F-CARD-TABLE,NUM,STACK RTRUE .FUNCT DISPLAY-OFFSET,PIC,Y,X,OFFPIC,?TMP1 PICINF OFFPIC,PICINF-TBL /?BOGUS1 ?BOGUS1: GET PICINF-TBL,0 ADD STACK,Y >?TMP1 GET PICINF-TBL,1 ADD STACK,X DISPLAY PIC,?TMP1,STACK RTRUE .FUNCT DRAW-CARD,X,RANK,SUIT,Y,PIC GET F-CARD-TABLE,RANK >RANK GET F-CARD-TABLE,SUIT >SUIT GET PICINF-TBL,0 >Y ZERO? RANK \?CCL3 DISPLAY F-CARD-BACK,Y,X RTRUE ?CCL3: GRTR? RANK,11 \?CCL5 SUB RANK,12 GET F-FACE-CARD-PIC-TBL,STACK >PIC DISPLAY PIC,Y,X RTRUE ?CCL5: DISPLAY F-CARD,Y,X GET RANK-PIC-TBL,RANK ICALL DISPLAY-OFFSET,STACK,Y,X,F-RANK-PIC-LOC GET RANK-REV-TBL,RANK ICALL DISPLAY-OFFSET,STACK,Y,X,F-REV-RANK-PIC-LOC GET SUIT-PIC-TBL,SUIT ICALL DISPLAY-OFFSET,STACK,Y,X,F-SUIT-PIC-LOC GET SUIT-REV-TBL,SUIT CALL DISPLAY-OFFSET,STACK,Y,X,F-REV-SUIT-PIC-LOC RSTACK .FUNCT FANUCCI,X,Y,PTR ICALL2 PICINF-PLUS-ONE,F-MENU-LOC GET PICINF-TBL,1 >X GET PICINF-TBL,0 >Y SET 'PTR,0 ICALL BOLD-MOVE,X,Y,PTR CLEAR S-TEXT PRINTI "Use the arrow keys -- or the U, D, L and R keys -- to highlight a play, then hit the RETURN/ENTER key. Or, if you have a mouse, you can use that to select your play." ?PRG1: CALL PICK-PLAY,X,Y,PTR ZERO? STACK \TRUE SCREEN S-WINDOW ICALL1 DRAW-CARDS ICALL1 UPDATE-SCORES SCREEN S-TEXT EQUAL? F-WIN-COUNT,3 \?CCL7 ADD YOUR-SCORE,1000 >YOUR-SCORE FCLEAR BROOM,TRYTAKEBIT RTRUE ?CCL7: CALL1 SCORE-CHECK ZERO? STACK \TRUE ICALL1 J-PLAY SCREEN S-WINDOW ICALL1 DRAW-CARDS INC 'F-PLAYS ICALL1 UPDATE-SCORES SCREEN S-TEXT CALL1 SCORE-CHECK ZERO? STACK /?PRG1 RTRUE .FUNCT UPDATE-SCORES,?TMP2,?TMP1 ICALL2 PICINF-PLUS-ONE,J-SCORE-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 >?TMP2 MUL FONT-X,16 ADD ?TMP2,STACK CURSET ?TMP1,STACK LESS? J-SCORE,10 \?CCL3 PRINTI " 00" JUMP ?CND1 ?CCL3: LESS? J-SCORE,100 \?CCL5 PRINTI " 0" JUMP ?CND1 ?CCL5: LESS? J-SCORE,1000 \?CND1 PRINTC 32 ?CND1: PRINTN J-SCORE ICALL2 PICINF-PLUS-ONE,YOUR-SCORE-LOC GET PICINF-TBL,0 >?TMP1 GET PICINF-TBL,1 >?TMP2 MUL FONT-X,12 ADD ?TMP2,STACK CURSET ?TMP1,STACK LESS? YOUR-SCORE,10 \?CCL9 PRINTI " 00" JUMP ?CND7 ?CCL9: LESS? YOUR-SCORE,100 \?CCL11 PRINTI " 0" JUMP ?CND7 ?CCL11: LESS? YOUR-SCORE,1000 \?CND7 PRINTC 32 ?CND7: PRINTN YOUR-SCORE RTRUE .FUNCT SCORE-CHECK GRTR? J-SCORE,YOUR-SCORE \?CCL3 SUB J-SCORE,YOUR-SCORE GRTR? STACK,1241 \FALSE PRINTI """My" JUMP ?CND1 ?CCL3: SUB YOUR-SCORE,J-SCORE GRTR? STACK,1241 \FALSE PRINTI """Your" ?CND1: PRINTR " lead exceeds 1241 points,"" the jester explains, ""so by Rules Committee Amendment #493, the game is suspended and must be replayed in its entirety, except during a Frotz Moon or in a six-player game where at least three of the players are of Mithican ancestry."" The jester sighs. ""It's always ironic to play for so long without reaching a decision. I'm sure that the great humorist, O'Flathead, would get a chuckle out of our predicament.""" .FUNCT J-PLAY,PLAY-NUM,RANK,SUIT,NUM PRINTI " Your opponent stares at his " PRINTN J-CARDS PRINTI " card" EQUAL? J-CARDS,1 /?CND1 PRINTC 115 ?CND1: PRINTI ", pondering his move. " ICALL1 HIT-ANY-KEY CLEAR S-TEXT PRINTI "The jester " LESS? J-CARDS,2 /?CTR4 EQUAL? J-CARDS,2 \?PRD8 RANDOM 100 LESS? 67,STACK \?CTR4 ?PRD8: EQUAL? J-CARDS,2 \?CCL5 RANDOM 100 LESS? 33,STACK /?CCL5 ?CTR4: INC 'J-CARDS PRINTI "decides to draw. He seems " RANDOM 100 LESS? 8,STACK /?CND13 PRINTI "extremely " ?CND13: RANDOM 100 LESS? 50,STACK /?CCL17 PRINTI "delighted" JUMP ?CND15 ?CCL17: PRINTI "dismayed" ?CND15: PRINTI " by his new card." RTRUE ?CCL5: DEC 'J-CARDS ADD J-DISCARD-FROMP-PROB,2 >J-DISCARD-FROMP-PROB PRINTI "proceeds to " RANDOM 100 LESS? J-DISCARD-FROMP-PROB,STACK /?CCL20 SET 'J-DISCARD-FROMP-PROB,0 SET 'PLAY-NUM,1 SET 'SUIT,FROMP-SUIT SET 'RANK,TREBLED-RANK JUMP ?CND18 ?CCL20: RANDOM 12 >PLAY-NUM RANDOM 15 >SUIT RANDOM 100 LESS? PICTURE-CARD-PROB,STACK /?CCL23 RANDOM 9 ADD 11,STACK >RANK JUMP ?CND18 ?CCL23: RANDOM 11 >RANK ?CND18: PUT J-LAST-CARD,0,RANK PUT J-LAST-CARD,1,SUIT MUL PLAY-NUM,SUIT MUL STACK,RANK MOD STACK,17 >NUM EQUAL? PLAY-NUM,1 \?CND24 PUT DRAW-CARDS-TABLE,0,1 PUT F-CARD-TABLE,0,RANK PUT F-CARD-TABLE,1,SUIT ?CND24: GET F-PLAY-TABLE-LC,PLAY-NUM PRINT STACK PRINTC 32 GET F-RANK-TABLE,RANK PRINT STACK GRTR? RANK,11 /?CND26 PRINTC 32 GET F-SUIT-TABLE,SUIT PRINT STACK ?CND26: PRINTI ". He " GET J-PLAY-TABLE,NUM PRINT STACK PRINTC 32 GET J-PLAY-SCORES,NUM CALL2 F-SCORE,STACK RSTACK .FUNCT PICK-PLAY,X,Y,PTR,KEY,TOP,LEFT,TL-X,TL-Y,BR-X,BR-Y,CNT-X,CNT-Y,NEW-PTR,MOUSE-MOVED? ICALL2 PICINF-PLUS-ONE,F-MENU-LOC GET PICINF-TBL,0 >TOP GET PICINF-TBL,1 >LEFT ICALL BOLD-MOVE,X,Y,PTR ?PRG1: ZERO? DEMO-VERSION? /?CCL5 CALL2 INPUT-DEMO,1 >KEY JUMP ?CND3 ?CCL5: INPUT 1 >KEY ?CND3: ICALL1 MOUSE-INPUT? EQUAL? KEY,CLICK1,CLICK2 \?CCL8 SET 'MOUSE-MOVED?,FALSE-VALUE SET 'CNT-X,0 SET 'CNT-Y,0 ICALL2 PICINF-PLUS-ONE,F-MENU-LOC GET PICINF-TBL,1 >TL-X ?PRG9: GET PICINF-TBL,0 >TL-Y MUL FONT-X,13 ADD STACK,TL-X >BR-X ?PRG11: ADD FONT-Y,TL-Y >BR-Y CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CCL15 SET 'MOUSE-MOVED?,TRUE-VALUE ICALL UNBOLD-MOVE,X,Y,PTR GET PICINF-TBL,0 >Y GET PICINF-TBL,1 >X MUL FONT-X,13 MUL CNT-X,STACK ADD X,STACK >X MUL CNT-Y,FONT-Y ADD Y,STACK >Y MUL CNT-X,3 ADD CNT-Y,STACK >NEW-PTR EQUAL? PTR,NEW-PTR \?CND16 SET 'KEY,CLICK2 ?CND16: SET 'PTR,NEW-PTR ICALL BOLD-MOVE,X,Y,PTR ?REP12: ZERO? MOUSE-MOVED? \?REP10 EQUAL? CNT-X,4 /?REP10 SET 'CNT-Y,0 INC 'CNT-X SET 'TL-X,BR-X JUMP ?PRG9 ?CCL15: EQUAL? CNT-Y,2 /?REP12 INC 'CNT-Y SET 'TL-Y,BR-Y JUMP ?PRG11 ?REP10: ZERO? MOUSE-MOVED? \?CCL27 CLEAR S-TEXT SOUND 1 PRINTI "Click on one of the items in the menu to highlight a play; double-click on it to select that play." JUMP ?PRG1 ?CCL27: EQUAL? KEY,CLICK2 \?PRG1 CALL2 PLAY-SELECTED,PTR EQUAL? STACK,TRUE-VALUE /TRUE ICALL UNBOLD-MOVE,X,Y,PTR RFALSE ?CCL8: EQUAL? KEY,UP-ARROW /?CTR32 EQUAL? KEY,85,117 \?CCL33 ?CTR32: EQUAL? Y,TOP \?CCL38 CLEAR S-TEXT SOUND 1 PRINT ALREADY-AT PRINTI "top row!" JUMP ?PRG1 ?CCL38: ICALL UNBOLD-MOVE,X,Y,PTR SUB Y,FONT-Y >Y DEC 'PTR ICALL BOLD-MOVE,X,Y,PTR JUMP ?PRG1 ?CCL33: EQUAL? KEY,DOWN-ARROW /?CTR39 EQUAL? KEY,68,100 \?CCL40 ?CTR39: MUL FONT-Y,2 ADD TOP,STACK EQUAL? Y,STACK \?CCL45 CLEAR S-TEXT SOUND 1 PRINT ALREADY-AT PRINTI "bottom row!" JUMP ?PRG1 ?CCL45: ICALL UNBOLD-MOVE,X,Y,PTR ADD Y,FONT-Y >Y INC 'PTR ICALL BOLD-MOVE,X,Y,PTR JUMP ?PRG1 ?CCL40: EQUAL? KEY,LEFT-ARROW /?CTR46 EQUAL? KEY,76,108 \?CCL47 ?CTR46: EQUAL? X,LEFT \?CCL52 CLEAR S-TEXT SOUND 1 PRINT ALREADY-AT PRINTI "left-most column!" JUMP ?PRG1 ?CCL52: ICALL UNBOLD-MOVE,X,Y,PTR MUL FONT-X,13 SUB X,STACK >X SUB PTR,3 >PTR ICALL BOLD-MOVE,X,Y,PTR JUMP ?PRG1 ?CCL47: EQUAL? KEY,RIGHT-ARROW /?CTR53 EQUAL? KEY,82,114 \?CCL54 ?CTR53: MUL FONT-X,52 ADD LEFT,STACK EQUAL? X,STACK \?CCL59 CLEAR S-TEXT SOUND 1 PRINT ALREADY-AT PRINTI "right-most column!" JUMP ?PRG1 ?CCL59: ICALL UNBOLD-MOVE,X,Y,PTR MUL FONT-X,13 ADD X,STACK >X ADD PTR,3 >PTR ICALL BOLD-MOVE,X,Y,PTR JUMP ?PRG1 ?CCL54: EQUAL? KEY,10,13 \?CCL61 CALL2 PLAY-SELECTED,PTR EQUAL? STACK,TRUE-VALUE /TRUE ICALL UNBOLD-MOVE,X,Y,PTR RFALSE ?CCL61: CLEAR S-TEXT SOUND 1 PRINTI "Use the arrow keys to highlight a play, or hit RETURN/ENTER to select the currently highlighted play." JUMP ?PRG1 .FUNCT UNBOLD-MOVE,X,Y,PTR SCREEN S-WINDOW SUB X,1 CURSET Y,STACK PRINTC 32 GET F-PLAY-TABLE,PTR PRINT STACK SCREEN S-TEXT RTRUE .FUNCT BOLD-MOVE,X,Y,PTR SCREEN S-WINDOW SUB X,1 CURSET Y,STACK HLIGHT H-BOLD PRINTC 62 GET F-PLAY-TABLE,PTR PRINT STACK HLIGHT H-NORMAL SCREEN S-TEXT RTRUE .FUNCT PLAY-SELECTED,PTR,CNT,X,NUM,?TMP1 EQUAL? PTR,14 /TRUE EQUAL? PTR,13 \?CCL5 RANDOM 100 LESS? 50,STACK /?CCL8 ICALL2 CHEAT-RESULT,CHEAT-WINS RFALSE ?CCL8: ICALL2 CHEAT-RESULT,CHEAT-LOSSES RFALSE ?CCL5: ZERO? PTR \?CCL10 SET 'CNT,0 ?PRG11: GET F-CARD-TABLE,CNT ZERO? STACK \?CCL15 DIV CNT,2 PUT DRAW-CARDS-TABLE,STACK,1 ICALL2 PICK-RANK,CNT ADD CNT,1 >?TMP1 RANDOM 15 PUT F-CARD-TABLE,?TMP1,STACK CLEAR S-TEXT PRINTI "You draw " ICALL2 PRINT-CARD-NAME,CNT PRINTC 46 RFALSE ?CCL15: EQUAL? CNT,8 \?CND13 CLEAR S-TEXT PRINTI "The jester snickers. ""You've no empty slot; you forfeit your shot!""" RFALSE ?CND13: ADD CNT,2 >CNT JUMP ?PRG11 ?CCL10: GET F-CARD-TABLE,2 ZERO? STACK \?CCL18 GET F-CARD-TABLE,4 ZERO? STACK \?CCL18 GET F-CARD-TABLE,6 ZERO? STACK \?CCL18 GET F-CARD-TABLE,8 ZERO? STACK \?CCL18 CLEAR S-TEXT SOUND 1 PRINTI "You can't " GET F-PLAY-TABLE-LC,PTR PRINT STACK PRINTI " just now; you have no drawn cards!" RFALSE ?CCL18: CLEAR S-TEXT PRINTI "Use your mouse or type the number of the card you'd like to " GET F-PLAY-TABLE-LC,PTR PRINT STACK PRINTC 46 ?PRG23: INPUT 1 >X ICALL1 MOUSE-INPUT? EQUAL? X,CLICK1,CLICK2 \?CND25 CALL1 F-MOUSE-CARD-PICK >X ?CND25: EQUAL? X,146,147,148 /?CCL28 EQUAL? X,149 \?CND27 ?CCL28: SUB X,97 >X ?CND27: EQUAL? X,49 \?PRD35 GET F-CARD-TABLE,2 ZERO? STACK /?CTR32 ?PRD35: EQUAL? X,50 \?PRD38 GET F-CARD-TABLE,4 ZERO? STACK /?CTR32 ?PRD38: EQUAL? X,51 \?PRD41 GET F-CARD-TABLE,6 ZERO? STACK /?CTR32 ?PRD41: EQUAL? X,52 \?CCL33 GET F-CARD-TABLE,8 ZERO? STACK \?CCL33 ?CTR32: CLEAR S-TEXT SOUND 1 PRINTI "You can't " GET F-PLAY-TABLE-LC,PTR PRINT STACK PRINTI " that card; it hasn't been drawn yet!" JUMP ?PRG23 ?CCL33: EQUAL? X,49 \?CCL47 SET 'X,2 JUMP ?REP24 ?CCL47: EQUAL? X,50 \?CCL49 SET 'X,4 JUMP ?REP24 ?CCL49: EQUAL? X,51 \?CCL51 SET 'X,6 JUMP ?REP24 ?CCL51: EQUAL? X,52 \?CCL53 SET 'X,8 ?REP24: GET F-CARD-TABLE,X >?TMP1 ADD X,1 GET F-CARD-TABLE,STACK MUL ?TMP1,STACK MUL STACK,PTR MOD STACK,37 >NUM EQUAL? PTR,5 \?CCL56 GRTR? F-WIN-COUNT,0 \?CCL59 INC 'F-WIN-COUNT EQUAL? F-WIN-COUNT,3 \?CND54 DIV X,2 PUT DRAW-CARDS-TABLE,STACK,1 PUT F-CARD-TABLE,X,0 ADD X,1 PUT F-CARD-TABLE,STACK,0 RFALSE ?CCL53: CLEAR S-TEXT SOUND 1 PRINT TYPE-A-NUMBER PRINTI "4." JUMP ?PRG23 ?CCL59: GET J-LAST-CARD,0 EQUAL? STACK,TREBLED-RANK \?CND54 GET J-LAST-CARD,1 EQUAL? STACK,FROMP-SUIT \?CND54 SET 'F-WIN-COUNT,1 JUMP ?CND54 ?CCL56: SET 'F-WIN-COUNT,0 ?CND54: GET F-SCORES,NUM ZERO? STACK \?CCL67 SET 'F-WIN-COUNT,0 PRINTI " The jester is outraged! ""You can't " GET F-PLAY-TABLE-LC,PTR PRINT STACK PRINTC 32 ICALL2 PRINT-CARD-NAME,X RANDOM 100 LESS? 6,STACK /?CCL70 PRINTI " when " ICALL2 PRINT-CARD-NAME,0 PRINTI " is showing on the Discard Pile!" RFALSE ?CCL70: PRINTC 32 GET J-RESPONSES,NUM PRINT STACK RFALSE ?CCL67: CLEAR S-TEXT PRINTI "You " GET F-PLAY-TABLE-LC,PTR PRINT STACK PRINTC 32 ICALL2 PRINT-CARD-NAME,X PRINTI ". The jester " GET J-RESPONSES,NUM PRINT STACK PRINTC 32 GET F-SCORES,NUM ICALL2 F-SCORE,STACK EQUAL? PTR,1 \?CND71 PUT DRAW-CARDS-TABLE,0,1 GET F-CARD-TABLE,X PUT F-CARD-TABLE,0,STACK ADD X,1 GET F-CARD-TABLE,STACK PUT F-CARD-TABLE,1,STACK ?CND71: DIV X,2 PUT DRAW-CARDS-TABLE,STACK,1 PUT F-CARD-TABLE,X,0 ADD X,1 PUT F-CARD-TABLE,STACK,0 RFALSE .FUNCT F-MOUSE-CARD-PICK,TL-X,TL-Y,BR-X,BR-Y,CARD-WIDTH,CARD-HEIGHT PICINF F-CARD,PICINF-TBL /?BOGUS1 ?BOGUS1: GET PICINF-TBL,0 >CARD-HEIGHT GET PICINF-TBL,1 >CARD-WIDTH ICALL2 PICINF-PLUS-ONE,F-1-PIC-LOC GET PICINF-TBL,0 >TL-Y GET PICINF-TBL,1 >TL-X ADD TL-Y,CARD-HEIGHT >BR-Y ADD TL-X,CARD-WIDTH >BR-X CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND2 RETURN 49 ?CND2: ICALL2 PICINF-PLUS-ONE,F-2-PIC-LOC GET PICINF-TBL,0 >TL-Y GET PICINF-TBL,1 >TL-X ADD TL-Y,CARD-HEIGHT >BR-Y ADD TL-X,CARD-WIDTH >BR-X CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND4 RETURN 50 ?CND4: ICALL2 PICINF-PLUS-ONE,F-3-PIC-LOC GET PICINF-TBL,0 >TL-Y GET PICINF-TBL,1 >TL-X ADD TL-Y,CARD-HEIGHT >BR-Y ADD TL-X,CARD-WIDTH >BR-X CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND6 RETURN 51 ?CND6: ICALL2 PICINF-PLUS-ONE,F-4-PIC-LOC GET PICINF-TBL,0 >TL-Y GET PICINF-TBL,1 >TL-X ADD TL-Y,CARD-HEIGHT >BR-Y ADD TL-X,CARD-WIDTH >BR-X CALL WITHIN?,TL-X,TL-Y,BR-X,BR-Y ZERO? STACK /?CND8 RETURN 52 ?CND8: RETURN CLICK1 .FUNCT PRINT-CARD-NAME,CNT GET F-CARD-TABLE,CNT GET F-RANK-TABLE,STACK PRINT STACK GET F-CARD-TABLE,CNT LESS? STACK,12 \FALSE PRINTC 32 ADD CNT,1 GET F-CARD-TABLE,STACK GET F-SUIT-TABLE,STACK PRINT STACK RTRUE .FUNCT CHEAT-RESULT,TBL,CNT,X,PTS GET TBL,0 >CNT RANDOM CNT MUL STACK,2 SUB STACK,1 >X ADD X,1 GET TBL,STACK >PTS CLEAR S-TEXT GET TBL,X PRINT STACK PRINTC 32 CALL2 F-SCORE,PTS RSTACK .FUNCT F-SCORE,PTS,?TMP1 GRTR? PTS,0 \?CCL3 DIV YOUR-SCORE,10 >?TMP1 RANDOM 100 LESS? ?TMP1,STACK /?CCL6 GRTR? J-SCORE,PTS \?CCL6 SUB J-SCORE,PTS >J-SCORE PRINTI "The jester loses" JUMP ?CND1 ?CCL6: ADD YOUR-SCORE,PTS >YOUR-SCORE PRINTI "You gain" JUMP ?CND1 ?CCL3: MUL PTS,-1 >PTS DIV J-SCORE,10 >?TMP1 RANDOM 100 LESS? ?TMP1,STACK /?CCL11 GRTR? YOUR-SCORE,PTS \?CCL11 SUB YOUR-SCORE,PTS >YOUR-SCORE PRINTI "You lose" JUMP ?CND1 ?CCL11: ADD J-SCORE,PTS >J-SCORE PRINTI "The jester gains" ?CND1: PRINTC 32 PRINTN PTS PRINTI " points." RTRUE .FUNCT QUILBOZZA-BEACH-F,RARG EQUAL? RARG,M-END \FALSE RANDOM 100 LESS? 40,STACK /FALSE EQUAL? CURRENT-SPLIT,MAP-TOP-LEFT-LOC /FALSE PRINTR " A wave crashes against the beach." .FUNCT ROOM-OF-THREE-DOORS-F,RARG EQUAL? RARG,M-LOOK \?CCL3 PRINTI "Before you are three doors: left, center, and right. All three doors are closed, and have writing on them. In addition, a tunnel leads southwest." RTRUE ?CCL3: EQUAL? RARG,M-END \?CCL5 ZERO? WRITING-CHANGED /?CCL5 SET 'WRITING-CHANGED,FALSE-VALUE ICALL1 RETURN-FROM-MAP PRINTR " The writing on the doors appears to have changed since the last time you were here." ?CCL5: EQUAL? RARG,M-ENTER \FALSE FSET? ROOM-OF-THREE-DOORS,TOUCHBIT \?CND10 SET 'WRITING-CHANGED,TRUE-VALUE ?CND10: RANDOM 100 LESS? 33,STACK /?CCL14 SET 'VERITASSI-DOOR,LEFT-DOOR RANDOM 100 LESS? 50,STACK /?CCL17 SET 'PREVARICON-DOOR,RIGHT-DOOR SET 'WISHYFOO-DOOR,CENTER-DOOR RETURN WISHYFOO-DOOR ?CCL17: SET 'PREVARICON-DOOR,CENTER-DOOR SET 'WISHYFOO-DOOR,RIGHT-DOOR RETURN WISHYFOO-DOOR ?CCL14: RANDOM 100 LESS? 50,STACK /?CCL19 SET 'VERITASSI-DOOR,RIGHT-DOOR RANDOM 100 LESS? 50,STACK /?CCL22 SET 'PREVARICON-DOOR,LEFT-DOOR SET 'WISHYFOO-DOOR,CENTER-DOOR RETURN WISHYFOO-DOOR ?CCL22: SET 'PREVARICON-DOOR,CENTER-DOOR SET 'WISHYFOO-DOOR,LEFT-DOOR RETURN WISHYFOO-DOOR ?CCL19: SET 'VERITASSI-DOOR,CENTER-DOOR RANDOM 100 LESS? 50,STACK /?CCL25 SET 'PREVARICON-DOOR,LEFT-DOOR SET 'WISHYFOO-DOOR,RIGHT-DOOR RETURN WISHYFOO-DOOR ?CCL25: SET 'PREVARICON-DOOR,RIGHT-DOOR SET 'WISHYFOO-DOOR,LEFT-DOOR RETURN WISHYFOO-DOOR .FUNCT THREE-DOORS-F EQUAL? PRSA,V?READ \?CCL3 PRINTI """Attention: 1. This door does not lead to Prevaricon territory. 2. The " EQUAL? PRSO,VERITASSI-DOOR \?CCL6 ICALL2 DPRINT,PREVARICON-DOOR PRINTI " does not lead to Wishyfoo" JUMP ?CND4 ?CCL6: EQUAL? PRSO,PREVARICON-DOOR \?CCL8 ICALL2 DPRINT,WISHYFOO-DOOR PRINTI " does not lead to Wishyfoo" JUMP ?CND4 ?CCL8: ICALL2 DPRINT,VERITASSI-DOOR PRINTI " does not lead to Veritassi" ?CND4: PRINTR " territory.""" ?CCL3: EQUAL? PRSA,V?ENTER,V?OPEN \FALSE PRINTI "As you open it, a strong draft sucks you through the doorway. You stumble down a steep incline" PRINT ELLIPSIS EQUAL? PRSO,WISHYFOO-DOOR \?CCL13 CALL2 GOTO,WISHYFOO-TERRITORY RSTACK ?CCL13: HLIGHT H-BOLD EQUAL? PRSO,VERITASSI-DOOR \?CCL16 PRINTI "Veritassi" JUMP ?CND14 ?CCL16: PRINTI "Prevaricon" ?CND14: PRINTI " Territory" CRLF HLIGHT H-NORMAL CALL2 JIGS-UP,STR?785 RSTACK .ENDSEG .ENDI