þþQ X; X; ****************X; ** GAME SETUP **(X; ****************2X;<#X; This code is before each gameF X; is played. It sets up theP!X; board and variables used byZ X; the computer move and gamedX; over checks.nX;xX; SHOW READY-SET-GO STUFF‚X;Œ…STARTQ>;;No disks should–P‡LASTDSK;; be flipping  ‡CLRBORD;;Clear the boardª ‡SHWTEAM;;Un-hilite team´$>†MREADY;;Put up READY¾ ‡MESSAGE;; messageÈQ>;;Wait 1/2 secondÒ „WAITÜ$>„MSET;;Put up SETæ ‡MESSAGE;; messageðQ>;;Wait 1/2 secondú „WAIT$>ƒMGO;;Put up GO! ‡MESSAGE;; messageQ>;;Wait 1/4 second" „WAIT, ‡CLRBORD;;Clear off message6Q>;;Not doing titles@ P‡TTLFLAGJX;TX; SET VALUES ON REAL BOARD^X;h%>Z;;Set right siderQ>†BORDER;; border|†NEGMS1PƒMAP8†1)>Pš H†NEGMS1¤X;®Q>…EMPTY;;Set board body¸ ‡BLNKMAPPƒMAP8;; to all emptyÂ1Ì)> Ö H‡BLNKMAPàX;êQ>†BORDER;;Set left sideô†NEGMS2PƒMAP8;; borderþ1 I†NEGMS2X;%>H;;Set top/bottom&"†NEGMS3Q>†BORDER;; side borders0 PƒMAP8:CD;NS> X?b H†NEGMS3lX;vX; PUT IN FIRST FOUR DISKS€X;Š%>(; ;Put white disk”Q>…WHITE;; in the realžPƒMAP8;; map¨C² ‡CSMPPOS;;Get screen pos¼Q>;;Set white diskÆ ‡STSCIMG;; on screenÐ%>2;;Put anotherÚQ>…WHITE;; white disk inäPƒMAP8;; the real mapîCø ‡CSMPPOS;;And on theQ>;; screen  ‡STSCIMG%>);;Put black disk Q>…BLACK;; in the real*PƒMAP8;; map4C> ‡CSMPPOS;; and on theHQ> ;; screenR ‡STSCIMG\%>1;;And put thefQ>…BLACK;; other blackpPƒMAP8;; disk in thezC;; real map and„ ‡CSMPPOS;; on the screenŽQ> ˜ ‡STSCIMG¢X;¬X; ERASE BOX IDs & LEVELS¶X;À%>ʆERPNLPQ>;;Set ID to blankÔ ‡SETBOXNÞQ>;; and levelè ‡SETBOXLò1ü I†ERPNLPX;X; RESET SCORESX;$Q>;;High byte of.P‡WHTSCOR;; scores=08 P‡BLKSCORBP†SCRPND;;No scoresLP†SCRPND;; pendingVQ>;;Low byte of`P‡WHTSCOR;; scores='2'jP‡BLKSCOR;; (internal)tX;~Q>;;Init game overˆP‡GOVRNDX;; check index’X;œ!X; SETUP AVAILABLE MOVE MATRIX¦%X; (ADD # FOR EACH 0 ENTRY IN MAP)°X;º$>;;No entries yetÄ%>P;;SEARCH MAPÎ ‡ADMENLPQƒMAP8;;If nothing isØH‡ADNMENT;; at this spot:â2;; Update #entriesìC;; Set move matrixöP†MOVMAT9;; entry ‡ADNMENT1 I‡ADMENLP;;Set # entries-1&‡LASTSPC;; (will be 59)X;( X; RANDOMIZE THE MOVE MATRIX2X; ENTRY ORDER<X;F$‡RDMENLPQ†RANDOM;;For each entry:PM>?;;Get a randomZR><;; entry numberd E‡RDMENLPn?;;Swap currentxQ†MOVMAT8;; and random‚ 5;; entryŒ Q†MOVMAT9– P†MOVMAT8 7ª P†MOVMAT9´ 0;;Do next¾ I‡RDMENLPÈX;ÒX; SET INITIAL TARGETS FORÜX; COMPUTER PLAYERSæX;ð%…COMPS;;If no 'putersúF‡INISTAT;; skip itQ>;;(1st comp getsP†HOLDIT;; entry #0)$†ACTIVE;;For each plyr:""‡STCMMVSQ†PORTNO9;;If plyr is a,I‡STNCMPM;; 'puter, set6Q†HOLDIT;; target no.@P†TARGNO9;; and targetJ ‡STARGXY;; x/y posTQ†HOLDIT;;Update next^,;; target (byhO†CSTEPL8;; # of comps)r P†HOLDIT| ‡STNCMPM0† I‡STCMMVSX;šX; INIT STATUS TO NOTHING¤X;®"‡INISTAT$†ACTIVE;;For each plyr¸Q>;;plyr status=0Â"‡INISTLPP†STATUS9;; (nothing isÌ0;; happening)Ö I‡INISTLPàX;ê!‡MAINLOP;;Go do gameôX;þX;X; SUBROUTINES TO SETUPX; --------------------X;&X; TIME DELAY0X; A=#Jiffies to wait:X;D„WAIT,;;CalculateNO†RTCLOK;; time toX†WTCLOKR†RTCLOK;; wake up &bH†WTCLOK;; wait for itl:vX;€X; CLEAR THE BOARD ON SCREENŠX;”‡CLRBORDQ>;;Set # of rowsž P…COUNT¨Q>4‡FRSTDSK;;Set pointer to²P‡POINTER;; start of board¼Q>5‡FRSTDSK;; (first diskÆP‡POINTER;; position)Ð%>Ú‡CLRBLIN$>;;Set first halfä ‡CLRBCHRQ…BLANK9;; of a blankîP@‡POINTER7;; board lineø …INCYP0  I‡CLRBCHR †AD24YP $>*'‡CLRBCH2Q…BLANK9;;Set second half4P@‡POINTER7;; of a blank> …INCYP;; board lineH0R I‡CLRBCH2\ †AD24YPf"…COUNT;;Last line done?pH‡CLRBLIN;;No, go do itz:„X;Ž†AD24YPC;;ADD 24 TO Y˜,;; AND POINTER¢O>¬?¶ D‡AD24YPDÀ#‡POINTERÊ ‡AD24YPD:ÔX;ÞX; PUT MESSAGE UP ON SCREENèX;ò#‡MESSAGEQ†MSGTXL9;;Set a pointerüP‡POINTER;; into message Q†MSGTXH9;; text P‡POINTER Q‡MSGADDL9;;Set screen$ P†SCRPTR;; pointer to. Q‡MSGADDH9;; message8 P†SCRPTR;; destinationB Q†MSGLNS9;;Set number ofL P…COUNT;; lines to copyV %>` †MLINLP$> ;;Copy a linej &†MCHRLPQ@‡POINTER7;; of the messaget P@†SCRPTR7~ 3ˆ 0’ I†MCHRLPœ Q†SCRPTR;;Update screen¦ ,;; pointer to° O>;; next lineº P†SCRPTR;; of screenÄ D†MNXLINÎ #†SCRPTRØ "†MNXLIN"…COUNT;;Last line done?â H†MLINLP;;No, go do itì :ö X; …INCYP3;;INCREMENT H‡INYPDON;; Y-REG/POINTER #‡POINTER;; AS A PAIR ‡INYPDON: