1 ***************** 2 * 18 WITH A DIE * 3 * R.YOST 790718 * 4 * BYTE V05 N01 * 5 ***************** 6 0000 7 C000 CONTRL EQU $C000 RETURN TO MONITOR 8 C006 INEEE EQU $C006 INPUT CHAR FROM CONSOLE AND ECHO 9 C009 PDATA EQU $C009 PRINT TEXT STRING @ X ENDED BY $04 10 C00C OUTHR EQU $C00C PRINT RIGHT HEX CHAR @ X 11 C012 OUT2HS EQU $C012 PRINT 2 HEX CHARS @ X 12 0000 13 * VARIABLES AND TABLES 14 0020 ORG $20 15 0020 0007 MSKTBL RMB 7 LEGAL RESPONSES MASKS 16 0027 0012 WINTBL RMB 18 TABLE OF WINNING PLAY BIT PATTERNS 17 0039 0007 RMB 7 SPACE FOR END GAME MARKERS 18 0040 0001 MPTPAT RMB 1 M. TRIAL PLAY PATTERN 19 0041 0001 SCOREH RMB 1 H. AND M. BCD SCORES 20 0042 0001 SCOREM RMB 1 21 0043 0001 TOTAL RMB 1 BINARY TOTAL OF ALL PLAYS 22 0044 0001 TOTBCD RMB 1 DITTO, BCD 23 0045 0001 HPLAY RMB 1 VALID, LEAGAL, H. PLAY 24 0046 0001 LSTPLA RMB 1 OPPONENT'S PREV. PLAY 25 0047 0001 HTURN RMB 1 H. TIRN FLAG 26 0048 0001 SCNFLG RMB 1 SCAN WITH TABLE FLAG. 1 MEANS 27 * BEFORE M'S PLAY 28 * 0 MEANS AFTER M'S PLAY. 29 0049 0001 ENDGAM RMB 1 END GAME FLAG. SET IF TOTAL > 17 30 004A 0002 LTSTIN RMB 2 DUMMY INPUT VARIABLE FOR LEGAL TEST 31 * 2 BYTES ACCOMODATE X REG. 32 004C 0006 WHRF RMB 6 TABLE STORES WINNING HUMAN RESPONSES 33 * TO TRIAL M PLAYS. 34 0052 0001 MPLAY RMB 1 TRIAL M PLAY. 35 0053 0001 MPLAW RMB 1 WINNING PLAY DETECTED IN REVISING 36 * WIN TABLE. 37 0054 0002 SSTO RMB 2 TEMP. STK. PNTR STORAGE 38 0056 0002 WTBLRP RMB 2 WINTABLE ROW POINTER 39 0058 0002 RANUM RMB 2 RANDOM NUMBER SHIFT REGISTERS. 40 005A 41 * MAIN PROGRAM 42 0100 ORG $100 43 * LDS #$A047 PRESERVE STRT ADDR @ $A048,9. 44 0100 BD 0192 JSR INITLZ 45 0103 CE 02D6 LDX #MES1 PRINT INSTRUCTIONS AND 46 0106 BD 018F JSR TXTOUT ASK "READY TO PLAY". 47 0109 BD C006 JSR INEEE GET RESPONSE 48 010C 84 DF ANDA #$DF TO UPPER CASE 49 010E 81 59 CMPA #'Y IF NOT 'Y' THEN 50 0110 27 08 BEQ M2 51 0112 CE 04F9 M1 LDX #MES5 PRINT "THANKS, GOOD BYE", 52 0115 8D 78 BSR TXTOUT 53 0117 7E C000 JMP CONTRL AND EXIT TO MIKBUG. 54 011A 4F M2 CLRA ELSE, INITIALIZE VARS. FOR 55 011B 97 43 STAA TOTAL NEW GAME. 56 011D 97 44 STAA TOTBCD 57 011F 97 46 STAA LSTPLA 58 0121 CE 03E5 LDX #MES2 PRINT NEW GAME HEADER. 59 0124 8D 69 BSR TXTOUT 60 0126 CE 0041 LDX #SCOREH PRINT SCORES. 61 0129 BD C012 JSR OUT2HS 62 012C CE 0042 LDX #SCOREM 63 012F BD C012 JSR OUT2HS 64 0132 CE 045A LDX #MES3 PRINT "YOUR 1ST PLAY?" 65 0135 8D 58 BSR TXTOUT 66 0137 BD 01CB M3 JSR GTVLHP GET VALID LEGAL H. PLAY. 67 013A 96 45 LDAA HPLAY PUT I HPLAY AND LAST PLAY. 68 013C 97 46 STAA LSTPLA 69 013E 86 01 LDAA #1 70 0140 97 47 STAA HTURN SET H. TURN FLAG, 71 0142 97 48 STAA SCNFLG AND SCAN FLAG, TO DENOTE WIN TABLE 72 0144 BD 0201 M4 JSR AVAZTO REVISION BEFORE M. PLAY. ADD PLAY 73 * TO TOTALS. SET END GAME FLG. IF 74 * TOTAL > 17, AND CALC. SCORES. 75 0147 7D 0049 TST ENDGAM 76 014A 27 1C BEQ M5 77 014C CE 0041 LDX #SCOREH IF GAME OVER, PRINT SCORES. 78 014F BD C012 JSR OUT2HS 79 0152 CE 0042 LDX #SCOREM 80 0155 BD C012 JSR OUT2HS 81 0158 CE 04DC LDX #MES4 PRINT "NEW GAME?" 82 015B 8D 32 BSR TXTOUT 83 015D BD C006 JSR INEEE 84 0160 84 DF ANDA #$DF 85 0162 81 4E CMPA #'N IF RESPONSE = 'N', PRINT THANKS, ETC, 86 0164 27 AC BEQ M1 AND EXIT. 87 0166 20 B2 BRA M2 ELSE, SET UP NEW GAME. 88 0168 BD 024C M5 JSR RVSTBW IF GAME NOT OVER, LOOK AHEAD FOR 89 * H RESPONSES TO M TRIAL PLAYS 90 * AND REVERSE WIN TABLE. 91 016B 7D 0048 TST SCNFLG IF SCAN FLAG CLEAR, THEN 92 016E 27 18 BEQ M6 GET NEXT H. PLAY 93 0170 BD 029D JSR SELMPL ELSE, SELECT M. PLAY. 94 0173 96 52 LDAA MPLAY 95 0175 97 46 STAA LSTPLA 96 0177 4F CLRA CLEAR SCAN FLAG TO REVISE WIN TABLE BY 97 * LOOKING AHEAD AFTER M'S PLAY. 98 0178 97 48 STAA SCNFLG 99 017A 97 47 STAA HTURN CLEAR H. TURN FLAG. 100 017C CE 0542 LDX #MES6 ANNOUNSE M'S PLAY, 101 017F 8D 0E BSR TXTOUT 102 0181 96 52 LDAA MPLAY 103 0183 BD C00C JSR OUTHR 104 0186 20 BC BRA M4 AND PROCESS IT. 105 0188 106 0188 CE 0554 M6 LDX #MES7 IF SCAN FLAG WAS RESET, REQUEST 107 018B 8D 02 BSR TXTOUT NEXT H. PLAY. 108 018D 20 A8 BRA M3 AND GET IT. 109 018F 7E C009 TXTOUT JMP PDATA TARGET FOR MIKBUG STRING PRINT 110 0192 111 * SUBROUTINE INITIALIZE - INITLZ 112 * ORG $5D 113 0192 ORG * 114 0192 CE 0020 INITLZ LDX #MSKTBL INITIALIZE MASK TABLE WHIT 115 0195 86 3F LDAA #$3F LEGAL RESPONSE PATTERNS 116 0197 A7 00 STAA 0,X IN 6 LEAST SIG. BITS 117 0199 86 1E LDAA #$1E 118 019B A7 01 STAA 1,X 119 019D A7 06 STAA 6,X 120 019F 86 2D LDAA #$2D 121 01A1 A7 02 STAA 2,X 122 01A3 A7 05 STAA 5,X 123 01A5 86 33 LDAA #$33 124 01A7 A7 03 STAA 3,X 125 01A9 A7 04 STAA 4,X 126 01AB 4F CLRA CLEAR WIN TABLE BEFORE 127 01AC CE 0001 LDX #1 FIRST GAME. 128 01AF A7 26 I1 STAA WINTBL-1,X 129 01B1 08 INX 130 01B2 8C 0013 CPX #$13 131 01B5 26 F8 BNE I1 132 01B7 86 03 LDAA #3 STORE DUMMY H WIN PLAY 133 01B9 A7 26 I2 STAA WINTBL-1,X BITS BEYOND END OF WINTABLE 134 01BB 08 INX SO MACHINE CAN SEE END OF 135 01BC 8C 0019 CPX #$19 GAME COMING. 136 01BF 26 F8 BNE I2 137 01C1 97 59 STAA RANUM+1 INITIALIZE RANDOM NUMBER GENERATOR 138 01C3 4F CLRA SEED. 139 01C4 97 4A STAA LTSTIN CLEAR HIGH BYTE OF L. TEST, ALSO 140 01C6 97 41 STAA SCOREH DIMMY VAR. AND SCORES. 141 01C8 97 42 STAA SCOREM 142 01CA 39 RTS 143 01CB 144 * SUBROUTINE GTVLHP - GET VALID LEGAL H. PLAY. 145 * ORG $1A0 146 01CB BD C006 GTVLHP JSR INEEE GET H. KEYBOARD INPUT. 147 01CE 80 30 SUBA #$30 CONVERT TO HEX 148 01D0 2F 04 BLE G1 OF LESS THAN 1, 149 01D2 81 06 CMPA #6 150 01D4 2F 07 BLE G2 OR GREATER THAN 6. 151 01D6 CE 0494 G1 LDX #MES8 PRINT "INVALID" 152 01D9 8D B4 BSR TXTOUT 153 01DB 20 EE BRA GTVLHP AND TRY AGAIN. 154 01DD 97 4B G2 STAA LTSTIN+1 CHECK H. PLAY FOR LEGALITY 155 01DF BD 01F0 JSR LGLTST ZERO (Z) BIT OF C REG=0 IF 156 01E2 26 07 BNE G3 PLAY IS LEGAL. 157 01E4 CE 0477 LDX #MES9 IF NOT, PRINT "ILLEGAL" 158 01E7 8D A6 BSR TXTOUT 159 01E9 20 E0 BRA GTVLHP AND TRY AGAIN. 160 01EB 96 4B G3 LDAA LTSTIN+1 STORE VALID LEGAL H. PLAY. 161 01ED 97 45 STAA HPLAY 162 01EF 39 RTS 163 01F0 164 * LEGAL TEST S.R., LGLTST 165 * ORG $1C8 166 01F0 96 4B LGLTST LDAA LTSTIN+1 0 AND 7 INPUTS 167 01F2 27 0C BEQ L1 FROM RAND. NO. GEN. ARE TREATED AS 168 01F4 81 07 CMPA #7 ILLEGAL. 169 01F6 27 08 BEQ L1 170 01F8 91 46 CMPA LSTPLA IF TEST PLAY = LAST PLAY, 171 01FA 27 04 BEQ L1 172 01FC 9B 46 ADDA LSTPLA OR IF SUM = 7, THEN 173 01FE 81 07 CMPA #7 TEST PLAY IS ILLEGAL. 174 0200 39 L1 RTS 'Z' BIT OF COND'N (C) REG. RETURNS 175 * RETURN OF TEST. 176 0201 177 * S.R. ADVANCE AND ANALYZE TOTAL - AVAZTO 178 * ORG $1E0 179 0201 7F 0049 AVAZTO CLR ENDGAM INILZ END GAME FLAG 180 0204 CE 04B3 LDX #MESA PRINT "TOTAL IS " 181 0207 8D 86 BSR TXTOUT 182 0209 96 46 LDAA LSTPLA GET LAST PLAY 183 020B D6 47 LDAB HTURN AND H TURN FLAG 184 * IN 'A' AND 'B' REGS. 185 020D 9B 44 ADDA TOTBCD ADD LAST PLAY TO BCD TOTAL. 186 020F 19 DAA 187 0210 97 44 STAA TOTBCD 188 0212 CE 0044 LDX #TOTBCD SET 'X' AS PNTR FOR MKBG S.R. 189 0215 BD C012 JSR OUT2HS PRINT TOTAL. 190 0218 96 46 LDAA LSTPLA NOW, ADD LAST PLAY TO 191 021A 9B 43 ADDA TOTAL BINARY TOTAL. 192 021C 97 43 STAA TOTAL 193 021E 80 12 SUBA #18 IF TOTAL < 18, THEN RETURN. 194 0220 2D 16 BLT A2 195 0222 7C 0049 INC ENDGAM ELSE, SET END GAME FLAG. 196 0225 4D TSTA IF TOTAL NOT IS, 197 0226 27 1F BEQ A4 198 0228 5D TSTB AND IF H'S TURN, THEN 199 0229 27 0E BEQ A3 200 022B CE 04D0 A1 LDX #MESB PRINT "I WIN", 201 022E BD 018F JSR TXTOUT 202 0231 86 01 LDAA #1 AND INCREMENT M'S SCORE IN BCD. 203 0233 9B 42 ADDA SCOREM 204 0235 19 DAA 205 0236 97 42 STAA SCOREM 206 0238 39 A2 RTS 207 0239 208 0239 CE 04C4 A3 LDX #MESC IF TOTAL IS 18, AND IF M'S TURN 209 023C BD 018F JSR TXTOUT PRINT "YOU WIN" 210 023F 86 01 LDAA #1 AND INCREMENT H'S SCORE IN BCD. 211 0241 9B 41 ADDA SCOREH 212 0243 19 DAA 213 0244 97 41 STAA SCOREH 214 0246 39 RTS 215 0247 216 0247 5D A4 TSTB ELSE, IF TOTAL IS 18 217 * AND IF M'S TURN, THEN 218 0248 27 E1 BEQ A1 AWARD WIN TO MACHINE. 219 024A 20 ED BRA A3 ELSE, IF H'S TURN, AWARD 220 * WIN TO HUMAN 221 024C 222 * SUBROUTINE REVERSE WINTABLE - RVSTBW 223 * ORG $230 224 024C 4F RVSTBW CLRA 225 024D 97 53 STAA MPLAW RESET WINNING PLAY REG. TO 'NONE' STATE. 226 024F 97 56 STAA WTBLRP CLEAR W. TABLE PTR. HIGH 227 * BYTE FOR PAGE 0 USE. 228 0251 9F 54 STS SSTO SAVE STACK POINTER. 229 0253 CE 0001 LDX #1 LOAD TABLE POINTER WITH TRIAL 230 * PLAY OF 1. 231 0256 86 26 LDAA #WINTBL-1 INLZ W TABLE PNTR LOW BYTE TO 232 0258 9B 43 ADDA TOTAL CORRESPOND TO CURRENT TOTAL. 233 025A 97 57 STAA WTBLRP+1 234 025C 9E 56 LDS WTBLRP SET STK POINTER TO NEXT ROW OF W. TABLE 235 025E 32 R1 PULA GET W. TABLE ROW (BYTE) IN 'A'. 236 * ( THIS IS THE ROW CORRESPONTING TO 237 * THE CURRENT TOTAL PLUS THE TRIAL 238 * MACHINES PLAY.) 239 025F A4 20 ANDA MSKTBL,X MASK WITH THE LEGAL RESPONSES 240 * TO M'S TRIAL PLAY. 241 0261 A7 4B STAA WHRF-1,X STORE RESULT IN TBL. OF WINNING 242 * H. RESPONSES TO M TRIAL PLAYS. 243 0263 08 INX GET NEXT TRIAL M PLAY. 244 0264 8C 0007 CPX #7 IF < 7, REPEAT SCAN FOR LEGAL WINNING 245 0267 26 F5 BNE R1 H RESPONSES. 246 0269 247 * NOW, ADD WINNING M PLAYS FOUND ABOVE TO THE WIN TABLE 248 * IN THE ROW CORRESPONDING TO THE CURRENT TOTAL. LIKE- 249 * WIZE, DELETE ANY PREVIOUSLY INCORRECTLY DEFINED WIN- 250 * ING PLAYS FROM THE SAME ROW. 251 0269 252 0269 86 20 LDAA #$20 SET 6TH BIT OF TRIAL PLAY PATTERN. 253 026B 97 40 STAA MPTPAT 254 026D CE 0006 LDX #6 SELECT M TRIAL PLAY OF 6. 255 * (BY COUNTING DOWN, GET SMALLEST 256 * WINNING PLAY IN MPLAW.) 257 0270 9E 56 R2 LDS WTBLRP SET STK PTR TO CURRENT 258 0272 34 DES TOTAL ROE (BYTE) OF W. TABLE. 259 0273 6D 4B TST WHRF-1,X DID PREVIOUS SCAN DETECT ANY WINNING 260 * LEGAL H RESPONSES TO TRIAL M PLAY? 261 0275 26 13 BNE R3 IF NOT, TRIAL M PLAY IS A WINNING PLAY, 262 0277 32 PULA SO 'OR' THE TRIAL M PLAY BIT PATTERN INTO THE 263 0278 9A 40 ORAA MPTPAT CURRENT TOTAL ROW OF THE W. TABLE. 264 027A 36 PSHA 265 027B DF 4A STX LTSTIN TEST TRIAL PLAY FOR LEGALITY, 266 027D 9E 54 LDS SSTO AFTER RESTORING STACK POINTER. 267 027F BD 01F0 JSR LGLTST 268 0282 27 10 BEQ R4 IF LEAGAL, STORE TRIAL PLAY IN 269 0284 96 4B LDAA LTSTIN+1 MPLAW, OVER ANY PREVIOUS LARGER PLAYS. 270 0286 97 53 STAA MPLAW 271 0288 20 0A BRA R4 SELECT NEXT TRIAL PLAY. 272 * 273 028A 73 0040 R3 COM MPTPAT IF LEGAL WINNING H RESPONSES TRO TRIAL 274 028D 32 PULA PLAY WERE DETECTED IN PREVIOUS SCAN, 275 028E 94 40 ANDA MPTPAT CLEAR TEH BIT (IN CURRENT W. TABLE 276 0290 36 PSHA ROW) CORRESPONDING TO M TRIAL PLAY. 277 0291 73 0040 COM MPTPAT 278 0294 09 R4 DEX SELECT NEXT (LOWER) M. TRIAL PLAY 279 0295 74 0040 LSR MPTPAT MOVE TRIAL PLAY PATTERN ONE BIT TO 280 * CORRESPOND TO NEXT M. TRIAL PLAY. 281 0298 26 D6 BNE R2 IF PATTERN NOT NULL, REPEAT 282 * W. TABLE REVISION FOR NEXT M. TRIAL PLAY. 283 029A 9E 54 LDS SSTO RESTORE STACK POINTER. 284 029C 39 RTS 285 029D 286 * SUBROUTINE SELECT M. PLAY - SELMPL 287 * ORG $290 288 029D BD 02B7 SELMPL JSR GNRNPL GET RANDOM NUMBER 0 THRU 7, 289 * FOR GOOF DECISION. 290 02A0 27 00 BEQ SP1 IF = 0, GOOF. (WITH SP1, THIS IS 291 * TURNED OFF. USE SP2 HERE TO TURN ON.) 292 02A2 96 53 SP1 LDAA MPLAW IF NOT GOOFING, GET WINNING M PLAY. 293 02A4 27 02 BEQ SP2 IF THERE WAS NONE, GET RANDOM PLAY 294 02A6 20 0C BRA SP3 AND STORE IN M PLAY REG. 295 02A8 296 02A8 BD 02B7 SP2 JSR GNRNPL GET RANDOM PLAY, 0 THRU 7 297 02AB 97 4B STAA LTSTIN+1 TEST SELECTED PLAY FOR GELALITY. 298 02AD BD 01F0 JSR LGLTST 299 02B0 27 F6 BEQ SP2 IF ILLEGAL, TRY ANOTHER. 300 02B2 96 4B LDAA LTSTIN+1 ELSE, TRANSFER THE SELECTED PLAY 301 02B4 97 52 SP3 STAA MPLAY TO THE M PLAY REG. 302 02B6 39 RTS 303 02B7 304 * SUBROUTINE GENERATE RANDOM PLAY - GNRNPL 305 * ORG $2B0 306 02B7 CE 0003 GNRNPL LDX #3 COUNT 3 SHIFTS, SO 3 'NEW' BITS WILL 307 * BE GENERATED. 308 02BA C6 09 GR1 LDAB #9 MASK BIT PATTERN TO IMPLEMENT 309 * BIT-3 EXOR BIT-0 = 1? 310 02BC D4 59 ANDB RANUM+1 APPLY MASK TO LOW BYTE OF R.N. 311 02BE C1 01 CMPB #1 TEST TRUE, SO SET CARRY. 312 02C0 27 05 BEQ GR2 313 02C2 C1 08 CMPB #8 TEST FALSE, SO CLEAR CARRY. 314 02C4 0C CLC 315 02C5 26 01 BNE GR3 316 02C7 0D GR2 SEC 317 02C8 76 0058 GR3 ROR RANUM ROTATE CARRY INTO MSB OF 2 BYTE R.N. 318 02CB 76 0059 ROR RANUM+1 319 02CE 09 DEX DECREMENT SHIFT COUNTER. 320 02CF 26 E9 BNE GR1 321 02D1 96 59 LDAA RANUM+1 STORE 3 LSB'S OF R.N. IN 'A', AS 322 02D3 84 07 ANDA #7 RANDOM NUMBER 0 THRU 7. 323 02D5 39 RTS 324 02D6 325 * STRING CONSTANTS 326 0D0A CRLF EQU $D0A CARRIAGE RETURN, LINE FEED 327 0004 ENDST EQU 4 STRING END SYMBOL FOR MIKBUG PDATA1 328 000A LNFD EQU $A LINE FEED 329 0A0A LNFDS EQU $A0A TWO LINE FEEDS 330 02D6 331 * INSTUCTIONS - MES1 332 * ORG $2D0 333 02D6 1B 5B 32 4A MES1 FCB $1B,$5B,$32,$4A CLEAR SCREEN 334 * FDB CHMEOF 335 * FDB 0 336 * FCB 0 337 02DA 48 49 21 20 FCC "HI! LET'S PLAY '18 WITH A DIE'!" 02DE 4C 45 54 27 02E2 53 20 50 4C 02E6 41 59 20 27 02EA 31 38 20 57 02EE 49 54 48 20 02F2 41 20 44 49 02F6 45 27 21 338 02F9 0D0A FDB CRLF 339 02FB 59 4F 55 20 FCC "YOU START. CHOOSE ANY NUMBER," 02FF 53 54 41 52 0303 54 2E 20 43 0307 48 4F 4F 53 030B 45 20 41 4E 030F 59 20 4E 55 0313 4D 42 45 52 0317 2C 340 0318 0D0A FDB CRLF 341 031A 31 20 54 48 FCC "1 THRU 6. I DO LIKEWISE, BUT WE" 031E 52 55 20 36 0322 2E 20 49 20 0326 44 4F 20 4C 032A 49 4B 45 57 032E 49 53 45 2C 0332 20 42 55 54 0336 20 57 45 342 0339 0D0A FDB CRLF 343 033B 43 41 4E 27 FCC "CAN'T PLAY THE NUMBER THE OTHER" 033F 54 20 50 4C 0343 41 59 20 54 0347 48 45 20 4E 034B 55 4D 42 45 034F 52 20 54 48 0353 45 20 4F 54 0357 48 45 52 344 035A 0D0A FDB CRLF 345 035C 4A 55 53 54 FCC "JUST PLAYED, NOR ITS DIFFERENCE" 0360 20 50 4C 41 0364 59 45 44 2C 0368 20 4E 4F 52 036C 20 49 54 53 0370 20 44 49 46 0374 46 45 52 45 0378 4E 43 45 346 037B 0D0A FDB CRLF 347 037D 46 52 4F 4D FCC "FROM 7. TRY TO MAKE THE TOTAL" 0381 20 37 2E 20 0385 54 52 59 20 0389 54 4F 20 4D 038D 41 4B 45 20 0391 54 48 45 20 0395 54 4F 54 41 0399 4C 348 039A 0D0A FDB CRLF 349 039C 4F 46 20 41 FCC "OF ALL YOUR PLAYS HIT 18 ON" 03A0 4C 4C 20 59 03A4 4F 55 52 20 03A8 50 4C 41 59 03AC 53 20 48 49 03B0 54 20 31 38 03B4 20 4F 4E 350 03B7 0D0A FDB CRLF 351 03B9 59 4F 55 52 FCC "YOUR PLAY." 03BD 20 50 4C 41 03C1 59 2E 352 03C3 0D0A FDB CRLF 353 03C5 0A FCB LNFD 354 03C6 52 45 41 44 FCC "READY TO START? (TYPE Y OR N.)" 03CA 59 20 54 4F 03CE 20 53 54 41 03D2 52 54 3F 20 03D6 28 54 59 50 03DA 45 20 59 20 03DE 4F 52 20 4E 03E2 2E 29 355 03E4 04 FCB ENDST 356 03E5 357 * NEW GAME HEADER - MES2 358 * ORG $3F0 359 03E5 1B 5B 32 4A MES2 FCB $1B,$5B,$32,$4A 360 03E9 20 20 20 20 FCC " EIGHTEEN WITH A DIE" 03ED 20 20 45 49 03F1 47 48 54 45 03F5 45 4E 20 57 03F9 49 54 48 20 03FD 41 20 44 49 0401 45 361 0402 0D0A FDB CRLF 362 0404 0A FCB LNFD 363 0405 20 20 20 20 FCC " GAMES WON" 0409 20 20 20 20 040D 20 20 20 20 0411 20 20 20 20 0415 20 20 20 20 0419 47 41 4D 45 041D 53 20 57 4F 0421 4E 364 0422 0D0A FDB CRLF 365 0424 20 20 20 20 FCC " YOU ME" 0428 20 20 20 20 042C 20 20 20 20 0430 20 20 20 20 0434 20 20 20 20 0438 20 20 59 4F 043C 55 20 4D 45 366 0440 0D0A FDB CRLF 367 0442 54 4F 54 41 FCC "TOTAL IS 00 " 0446 4C 20 49 53 044A 20 30 30 20 044E 20 20 20 20 0452 20 20 20 20 0456 20 20 20 368 0459 04 FCB ENDST 369 045A 370 * YOUE FIRST PLAY? MES3 371 * ORG $465 372 045A 0D0A MES3 FDB CRLF 373 045C 0A FCB LNFD 374 045D 20 20 20 20 FCC " YOUR FIRST PLAY? " 0461 20 20 20 20 0465 59 4F 55 52 0469 20 46 49 52 046D 53 54 20 50 0471 4C 41 59 3F 0475 20 375 0476 04 FCB ENDST 376 0477 377 * ILLEGAL PLAY - MES9 378 * ORG $482 379 0477 0D0A MES9 FDB CRLF 380 0479 49 4C 4C 45 FCC "ILLEGAL PLAY! TRY ANOTHER." 047D 47 41 4C 20 0481 50 4C 41 59 0485 21 20 54 52 0489 59 20 41 4E 048D 4F 54 48 45 0491 52 2E 381 0493 04 FCB ENDST 382 0494 383 * INVALID PLAY - MED 8 384 * ORG $4A2 385 0494 0D0A MES8 FDB CRLF 386 0496 49 4E 56 41 FCC "INVALID PLAY! PLAY 1 THRU 6." 049A 4C 49 44 20 049E 50 4C 41 59 04A2 21 20 50 4C 04A6 41 59 20 31 04AA 20 54 48 52 04AE 55 20 36 2E 387 04B2 04 FCB ENDST 388 04B3 389 * TOTAL IS - MESA 390 * ORG $4CE 391 04B3 1B 5B 48 MESA FCB $1B,$5B,$48 CURSOR HOME 392 04B6 0A0A FDB LNFDS 393 04B8 0A0A FDB LNFDS 394 04BA 54 4F 54 41 FCC "TOTAL IS " 04BE 4C 20 49 53 04C2 20 395 04C3 04 FCB ENDST 396 04C4 397 * YOU WIN! - MESC 398 * ORG $4DD 399 04C4 20 20 59 4F MESC FCC " YOU WIN! " 04C8 55 20 57 49 04CC 4E 21 20 400 04CF 04 FCB ENDST 401 04D0 402 * I WIN! - MESB 403 * ORG $4EA 404 04D0 20 20 49 20 MESB FCC " I WIN! " 04D4 57 49 4E 21 04D8 20 20 20 405 04DB 04 FCB ENDST 406 04DC 407 * NEW GAME? - MES4 408 * ORG $4F6 409 04DC 0A MES4 FCB LNFD 410 04DD 0D0A FDB CRLF 411 04DF 1B 5B 4A FCB $1B,$5B,$4A CLEAR TO END OF SCREEN 412 04E2 4E 45 57 20 FCC "NEW GAME? ('Y' OR 'N')" 04E6 47 41 4D 45 04EA 3F 20 28 27 04EE 59 27 20 4F 04F2 52 20 27 4E 04F6 27 29 413 04F8 04 FCB ENDST 414 04F9 415 * THANKS, ETC. - MES5 416 * ORG $512 417 04F9 0D0A MES5 FDB CRLF 418 04FB 54 48 41 4E FCC "THANKS FOR PLAYING. HOPE YOU" 04FF 4B 53 20 46 0503 4F 52 20 50 0507 4C 41 59 49 050B 4E 47 2E 20 050F 48 4F 50 45 0513 20 59 4F 55 419 0517 0D0A FDB CRLF 420 0519 45 4E 4A 4F FCC "ENJOYED IT AS MUCH AS I." 051D 59 45 44 20 0521 49 54 20 41 0525 53 20 4D 55 0529 43 48 20 41 052D 53 20 49 2E 421 0531 0D0A FDB CRLF 422 0533 53 45 45 20 FCC "SEE YOU LATER!" 0537 59 4F 55 20 053B 4C 41 54 45 053F 52 21 423 0541 04 FCB ENDST 424 0542 425 * MY PLAY IS - MES6 426 * ORG $55A 427 0542 0A MES6 FCB LNFD 428 0543 0D0A FDB CRLF 429 0545 1B 5B 4A FCB $1B,$5B,$4A CLEAR TO END OF SCREEN 430 0548 4D 59 20 50 FCC "MY PLAY IS " 054C 4C 41 59 20 0550 49 53 20 431 0553 04 FCB ENDST 432 0554 433 * YOUR PLAY? - MES7 434 * ORG $56E 435 0554 0A0A MES7 FDB LNFDS 436 0556 2E 20 59 4F FCC ". YOUR PLAY? " 055A 55 52 20 50 055E 4C 41 59 3F 0562 20 437 0563 04 FCB ENDST 438 0564 439 END Total Errors 0