Listing of file='CHESS2.MAC;01' on disk='vmedia/sargon_chess_1-sector.ccvf'
TITLE CHESS2 ; PART 2 OF THE CHESS PLAYING PROGRAM, SARGON 1 ENTRY DRIVER EXTRN CO,CI,KBINIT,OSTR,MOVHD,EXIT,MOVDH,EMESS EXTRN INPRMT,PFSPC,OPEN,RWSEQI,INSEQO,CLSEQO EXTRN PTBYT,GTBYT,FXBC,FBUF,INBUF,CRLF EXTRN INITBD,FNDMOV,MOVE,UNMOVE,INCHK,GENMOV EXTRN BESTM,BOARD,COLOR,KOLOR,MOVENO,SCORE EXTRN PLYMAX,PLYIX,MLPTRI,MLPTRJ,PMATE,POSK EXTRN MLIST,MLNXT,MLFRP,NEWBRD EXTRN SCROL,CSRX,CSRY,HGHT,WDTH,CLRSW CSR EQU 3 LF EQU 10 FF EQU 12 CR EQU 13 CTRLR EQU 18 CRSRR EQU 25 CRSRL EQU 26 ESC EQU 27 EOS EQU 239 QUEEN EQU 5 KING EQU 6 RED EQU 17 GREEN EQU 18 MAGENT EQU 21 CYAN EQU 22 FGON EQU 29 PGE EQU 24 FPB EQU 80F7H PAGE(62) ;-------------------------------------------------- DRIVER: CALL KBINIT LXI H,8047H SHLD FPB+FBUF LXI H,80H SHLD FPB+FXBC MVI A,0 ;INIT SCROLL WINDOW STA CSRX MVI A,2 STA CSRY MVI A,28 STA HGHT MVI A,16 STA WDTH MVI A,1 STA CLRSW CALL CLRBRD XRA A STA COLOR LXI H,GRTTNG CALL OSTR LXI H,MSGCON CALL OSTR CALL CI DRIV01: LXI H,MSGOPT CALL OSTR CALL CI CPI "N" JZ DR02 CPI "C" JNZ DR01 CALL CLRBRD JMP ANALYS DR01: CPI "A" JZ ANALYS CPI "S" JZ SAVE CPI "L" JZ LOAD CPI "H" JZ HELP JMP DRIV01 DR02: CALL CLRBRD DR04: CALL INTERR CALL INITBD CALL DSPBRD LXI H,TITLE CALL OSTR DRIV04: LXI H,MVENUM CALL SCRPRT LDA KOLOR ANA A JNZ DR08 CALL CPTRMV LXI H,CSR929 CALL OSTR CALL PLYRMV JZ DRIV01 JMP DR0C DR08: CALL PLYRMV JZ DRIV01 LXI H,CSR929 CALL OSTR CALL CPTRMV DR0C: LXI H,MVENUM+3 MVI A," " CMP M MVI A,"9"+1 JZ DR10 INR M CMP M JNZ DR14 MVI M,"0" DR10: DCX H INR M CMP M JNZ DR14 MVI M,"0" DCX H INR M CMP M JNZ DR14 MVI M,"1" MVI A,"0" STA MVENUM+3 DR14: LXI H,MOVENO INR M JMP DRIV04 SAVE: LXI H,MSGSPC LXI D,SPCBUF MVI A,20 CALL INPRMT LXI D,FPB LXI B,DEFALT CALL PFSPC JC ERR LXI H,FPB MVI M,1 CALL OPEN JC ERR CALL INSEQO MVI B,38 LXI D,TITLE SV1: LDAX D CALL PTBYT JC ERR INX D DCR B JNZ SV1 LDA PLYMAX CALL PTBYT JC ERR LDA KOLOR CALL PTBYT JC ERR LDA NEWBRD CALL PTBYT JC ERR LDA MOVENO CALL PTBYT JC ERR LDA MVENUM+1 CALL PTBYT JC ERR LDA MVENUM+2 CALL PTBYT JC ERR LDA MVENUM+3 CALL PTBYT JC ERR LXI D,BOARD MVI B,120 SV2: LDAX D CALL PTBYT JC ERR INX D DCR B JNZ SV2 CALL CLSEQO JMP DRIV01 LOAD: LXI H,MSGSPC LXI D,SPCBUF MVI A,20 CALL INPRMT LXI D,FPB LXI B,DEFALT CALL PFSPC JC ERR LXI H,FPB MVI A,0 CALL OPEN JC ERR CALL RWSEQI MVI B,38 LXI D,TITLE LD1: CALL GTBYT JC ERR STAX D INX D DCR B JNZ LD1 CALL GTBYT JC ERR STA PLYMAX CALL GTBYT JC ERR STA KOLOR CALL GTBYT JC ERR STA NEWBRD CALL GTBYT JC ERR STA MOVENO CALL GTBYT JC ERR STA MVENUM+1 CALL GTBYT JC ERR STA MVENUM+2 CALL GTBYT JC ERR STA MVENUM+3 LXI D,BOARD MVI B,120 LD2: CALL GTBYT JC ERR STAX D INX D DCR B JNZ LD2 CALL ROYALT CALL DSPBRD LXI H,TITLE CALL OSTR LDA KOLOR CPI 80H JZ DRIV04 LXI H,MVENUM CALL SCRPRT LXI H,CSR929 CALL OSTR CALL PLYRMV JZ DRIV01 JMP DR0C HELP: LXI H,MSGHLP CALL OSTR LXI H,MSGCON CALL OSTR CALL CI JMP DRIV01 ;-------------------------------------------------- ERR: CALL CRLF CALL CRLF CALL EMESS LXI H,MSGCON CALL OSTR CALL CI JMP DRIV01 ;-------------------------------------------------- CLRBRD: ;CLEAR BOARD PUSH H PUSH B MVI B,120 LXI H,BOARD CB1: MVI M,-1 INX H DCR B JNZ CB1 LXI H,BOARD+21 MVI C,8 CB2: MVI B,8 CB3: MVI M,0 INX H DCR B JNZ CB3 INX H INX H DCR C JNZ CB2 MVI B,4 LXI H,POSK CB4: MVI M,0 INX H DCR B JNZ CB4 MVI A,1 STA NEWBRD MVI A,1 STA MOVENO LXI H,MVENUM+1 MVI M,"0" INX H MVI M,"1" INX H MVI M," " POP B POP H RET ;-------------------------------------------------- INTERR: LXI H,CLRMSG CALL OSTR CALL CI CPI "W" JZ IN04 XRA A STA KOLOR LXI H,TITLE1 LXI D,TITLE+6 MVI B,6 CALL MOVHD LXI H,TITLE2 LXI D,TITLE+14 MVI B,6 CALL MOVHD JMP IN08 IN04: MVI A,80H STA KOLOR LXI H,TITLE2 LXI D,TITLE+6 MVI B,6 CALL MOVHD LXI H,TITLE1 LXI D,TITLE+14 MVI B,6 CALL MOVHD IN08: LXI H,PLYDEP CALL OSTR CALL CI LXI H,PLYMAX MVI M,2 CPI "1" RM CPI "7" RP SUI "0" MOV M,A RET ;-------------------------------------------------- CPTRMV: CALL FNDMOV LHLD BESTM SHLD MLPTRJ LDA SCORE+1 CPI 1 JNZ CP0C MVI C,1 CALL FCDMAT CP0C: CALL MOVE CALL EXECMV MOV A,B ANA A JNZ CP10 MOV D,E CALL BITASN SHLD MVEMSG+3 MOV D,C CALL BITASN SHLD MVEMSG LXI H,MVEMSG CALL OSTR JMP CP1C CP10: MOV A,B ANI 02H JZ CP15 LXI H,OO CALL OSTR JMP CP1C CP15: MOV A,B ANI 04H JZ CP16 LXI H,OOO CALL OSTR JMP CP1C CP16: LXI H,PXPEP CALL OSTR CP1C: LDA COLOR MOV B,A XRI 80H STA COLOR CALL INCHK ANA A MOV A,B STA COLOR JZ CP24 LDA SCORE+1 CPI -1 CNZ TBCPMV LXI H,CKMSG CALL OSTR CP24: LDA SCORE+1 CPI -1 RNZ MVI C,0 CALL FCDMAT RET ;-------------------------------------------------- FCDMAT: LDA MOVENO MOV B,A LDA PMATE SUB B ANA A JNZ FM0C MOV A,C ANI 01H JZ FM04 LXI H,CKMSG CALL SCRPRT CALL MATED LXI H,UWIN CALL SCRPRT JMP FM08 FM04: LXI H,MATEMG CALL SCRPRT LXI H,IWIN CALL SCRPRT FM08: POP H POP H CALL CI FM09: LXI H,AGAIN CALL OSTR JMP DRIV01 FM0C: MOV B,A MOV C,A ANI 01H MOV A,B RNZ ADI "0" STA MTPL CALL SCROL LXI H,MTMSG CALL OSTR CALL TBPLMV RET ;-------------------------------------------------- TBPLCL: LXI H,MVENUM CALL SCRPRT LDA KOLOR ANA A RNZ LXI H,CSR929 CALL OSTR RET TBCPCL: LXI H,MVENUM CALL SCRPRT LDA KOLOR ANA A RZ LXI H,CSR929 CALL OSTR RET TBPLMV: LXI H,CSR329 CALL OSTR LDA KOLOR ANA A RNZ LXI H,CSR929 CALL OSTR RET TBCPMV: LXI H,CSR329 CALL OSTR LDA KOLOR ANA A RZ LXI H,CSR929 CALL OSTR RET ;-------------------------------------------------- BITASN: SUB A MVI E,10 CALL DIVIDE DCR D ADI "A"-1 MOV L,A MOV A,D ADI "0" MOV H,A RET ;-------------------------------------------------- PLYRMV: CALL CI CPI CTRLR RZ ;RETURN IF ZF SET MOV H,A CALL CI MOV L,A CALL ASNTBI SUB B JZ PL08 STA MVFBIN CALL CI CALL CI MOV H,A CALL CI MOV L,A CALL ASNTBI SUB B JZ PL08 STA MVTBIN CALL VALMOV ANA A JNZ PL08 CALL EXECMV XRA A ;RESET ZF INR A RET PL08: LXI H,INVAL1 CALL SCRPRT LXI H,INVAL2 CALL SCRPRT CALL TBPLCL JMP PLYRMV ;-------------------------------------------------- ASNTBI: MOV A,L SUI "0" CPI 1 JM AT04 CPI 9 JNC AT04 INR A MOV D,A MVI E,10 CALL MLTPLY MOV A,H SUI "A"-1 CPI 1 JM AT04 CPI 9 JNC AT04 ADD D MVI B,0 RET AT04: MOV B,A RET ;-------------------------------------------------- VALMOV: LHLD MLPTRJ PUSH H LDA KOLOR XRI 80H STA COLOR LXI H,PLYIX-2 SHLD MLPTRI LXI H,MLIST+1024 SHLD MLNXT CALL GENMOV LXI H,MLIST+1024 VA5: LDA MVFBIN INX H INX H CMP M ;I/P=MLFRP? JNZ VA6 LDA MVTBIN INX H CMP M ;I/P=MLTOP? DCX H JZ VA7 VA6: DCX H MOV A,M ;HL=MLPTR DCX H MOV L,M MOV H,A ANA A JZ VA10 JMP VA5 VA7: DCX H DCX H SHLD MLPTRJ CALL MOVE CALL INCHK ANA A JNZ VA9 VA8: POP H RET VA9: CALL UNMOVE VA10: MVI A,1 POP H SHLD MLPTRJ RET ;-------------------------------------------------- MATED: LDA KOLOR ANA A JZ MA04 MVI C,2 LDA POSK+1 JMP MA08 MA04: MOV C,A LDA POSK MA08: STA BRDPOS STA ANBDPS CALL CONVRT MVI B,10 CALL BLNKER PUSH H LXI H,MA0C XTHL PUSH H PUSH B PUSH D PUSH PSW LDA KOLOR MOV C,A MVI A,7 JMP IP04 MA0C: MVI B,10 LDA ANBDPS STA BRDPOS CALL BLNKER RET ;-------------------------------------------------- ANALYS: CALL DSPBRD MVI A,21 STA ANBDPS AN08: LXI H,ENTPCE CALL OSTR LDA ANBDPS STA BRDPOS CALL CONVRT LXI D,BOARD ADD E MOV E,A MVI B,4 CALL BLNKER CALL CI CPI CTRLR JZ AN1B CPI CRSRL JZ AN1A CPI CRSRR JZ AN19 MVI C,6 LXI H,PCS AN14: CMP M JZ AN16 INX H DCR C JNZ AN14 JMP AN18 AN16: CALL CI CALL CI CPI "B" JNZ AN17 MOV A,C ORI 80H MOV C,A AN17: CALL CI CALL CI CPI "1" JNZ AN18 MOV A,C ORI 08H MOV C,A AN18: MOV A,C STAX D CALL DSPBRD AN19: LDA ANBDPS INR A STA ANBDPS CPI 99 JNZ AN19B MVI A,21 STA ANBDPS JMP AN08 AN19B: INX D LDAX D CPI -1 JZ AN19 JMP AN08 AN1A: LDA ANBDPS DCR A STA ANBDPS CPI 20 JNZ AN1AB MVI A,98 STA ANBDPS JMP AN08 AN1AB: DCX D LDAX D CPI -1 JZ AN1A JMP AN08 AN1B: LXI H,CRTNES CALL OSTR CALL CI CPI "N" JZ AN08 CALL ROYALT LDA POSK ANA A JZ AN1D LDA POSK+1 ANA A JNZ AN1E AN1D: LXI H,MSGNOK CALL OSTR JMP AN08 AN1E: MVI A,FF CALL CO CALL INTERR LXI H,WSMOVE CALL OSTR CALL CI PUSH PSW CALL DSPBRD LXI H,TITLE CALL OSTR MVI A,0 STA COLOR POP PSW CPI "W" JZ DRIV04 MVI A,80H STA COLOR LXI H,MVENUM CALL SCRPRT LXI H,CSR929 CALL OSTR LDA KOLOR ANA A JNZ AN20 CALL PLYRMV JMP DR0C AN20: CALL CPTRMV JMP DR0C ;-------------------------------------------------- ROYALT: LXI H,POSK MVI B,4 RY02: MVI M,0 INX H DCR B JNZ RY02 LXI D,BOARD+21 MVI B,21 RY04: LXI H,POSK LDAX D ANI 80H JZ RY06 INX H RY06: LDAX D ANI 07H CPI KING JZ RY08 CPI QUEEN JNZ RY0C INX H INX H RY08: MOV M,B RY0C: INX D INR B MOV A,B CPI 99 JNZ RY04 RET ;-------------------------------------------------- DSPBRD: PUSH B PUSH D PUSH H PUSH PSW MVI A,FF CALL CO LXI H,7020H MVI A,38H ;CCI MVI C,8 ;RANK CTR DB04: MVI B,4 DB06: MVI D,8 ;FILE CTR DB08: MVI E,6 DB10: INX H MOV M,A ;SET CCI BYTE INX H DCR E JNZ DB10 XRI 38H DCR D JNZ DB08 LXI D,20H DAD D DCR B JNZ DB06 XRI 38H DCR C JNZ DB04 MVI A,21 DB20: STA BRDPOS CALL CONVRT CALL INSPCE INR A CPI 99 JC DB20 MVI B,8 MVI C,"A" LXI D,11 LXI H,7020H DB30: MOV M,C INX H MOV A,M ORI 02H ;GREEN MOV M,A DAD D INR C DCR B JNZ DB30 MVI B,8 MVI C,"8" LXI D,01FFH LXI H,71F4H DB32: MOV M,C INX H MOV A,M ORI 02H ;GREEN MOV M,A DAD D DCR C DCR B JNZ DB32 POP PSW POP H POP D POP B RET ;-------------------------------------------------- INSPCE: PUSH H PUSH D PUSH B PUSH PSW LDA BRDPOS LXI D,BOARD ;GET BOARD CONTENTS ADD E MOV E,A LDAX D ANA A JZ IP20 CPI -1 JZ IP20 MOV C,A ;SAVE PIECE COLOUR IP04: ANI 07H DCR A RRC ;*32 RRC RRC LXI D,BLOCK ADD E MOV E,A JNC IP05 INR D IP05: INX H MOV A,M ;GET SQUARE CCI INX H PUSH H LXI H,IPOC ANI 38H ;GET SQUARE COLOUR JNZ IP06 ;? ON W INX H INX H INX H INX H IP06: MOV A,C ANI 80H ;GET PIECE COLOUR JNZ IP08 ;B ON ? INX H INX H IP08: MOV A,M INX H MOV H,M MOV L,A SHLD IPPC POP H MVI C,4 IP09: MVI B,4 IP10: LDAX D MOV M,A INX D INX H LDAX D IPPC: NOP ;INSTR INSERTED HERE NOP MOV M,A INX D INX H DCR B JNZ IP10 MOV A,L ADI 78H MOV L,A JNC IP16 INR H IP16: DCR C JNZ IP09 IP20: POP PSW POP B POP D POP H RET IPOC: DB (NOP),(NOP) ;B ON W DB (ORI),3CH ;W ON W DB (ANI),0C7H ;B ON B DB (XRI),3CH ;W ON B ;-------------------------------------------------- CONVRT: PUSH B PUSH D PUSH PSW LDA BRDPOS MOV D,A MVI E,10 CALL DIVIDE DCR D DCR A MOV C,D MVI D,12 MOV E,A CALL MLTPLY MOV A,D ADI 20H MOV L,A MVI A,8 SUB C ADD A ADI 70H MOV H,A POP PSW POP D POP B RET ;-------------------------------------------------- DIVIDE: ;I/P D=DIVIDEND, E=DIVISOR ;O/P D=QUOTIENT, A=REMAINDER MOV A,D MVI D,0 DD04: SUB E JM DD08 INR D JMP DD04 DD08: ADD E RET ;-------------------------------------------------- MLTPLY: ;I/P D & E ;O/P D & A XRA A ML04: ADD E DCR D JNZ ML04 MOV D,A RET ;-------------------------------------------------- BLNKER: PUSH PSW PUSH B PUSH D PUSH H SHLD NORMAD BL04: LHLD NORMAD MVI D,4 BL08: MVI C,6 BL0C: INX H ;POINT TO CCI BYTE MOV A,M XRI 38H MOV M,A INX H DCR C JNZ BL0C MOV A,L ADI 74H MOV L,A JNC BL0E INR H BL0E: DCR D JNZ BL08 LXI D,3030H BL10: DCR D JNZ BL10 DCR E JNZ BL10 DCR B JNZ BL04 POP H POP D POP B POP PSW RET ;-------------------------------------------------- EXECMV: PUSH H PUSH PSW LHLD MLPTRJ INX H INX H MOV C,M ;MLFRD INX H MOV E,M ;MLTOP CALL MAKEMV INX H MOV D,M ;MLFLG MVI B,0 MOV A,D ANI 40H JZ EX14 LXI D,4 DAD D MOV C,M ;NEXT MLFRP INX H MOV E,M ;NEXT MLTOP MOV A,E CMP C JNZ EX04 INR B JMP EX10 EX04: CPI 1AH JNZ EX08 MOV A,B ORI 02H MOV B,A JMP EX10 EX08: CPI 60H JNZ EX0C MOV A,B ORI 02H MOV B,A JMP EX10 EX0C: MOV A,B ORI 04H MOV B,A EX10: CALL MAKEMV EX14: POP PSW POP H RET ;-------------------------------------------------- MAKEMV: PUSH PSW PUSH B PUSH D PUSH H MOV A,C STA BRDPOS CALL CONVRT MVI B,10 CALL BLNKER INR L MOV A,M ;GET CCI ANI 38H INR L MVI D,4 MM04: MVI B,4 MM08: MVI M," " INR L MOV M,A INR L DCR B JNZ MM08 MOV C,A MOV A,L ADI 78H MOV L,A JNC MM12 INR H MM12: MOV A,C DCR D JNZ MM04 MOV A,E STA BRDPOS CALL CONVRT CALL INSPCE MVI B,10 CALL BLNKER POP H POP D POP B POP PSW RET ;-------------------------------------------------- SCRPRT: ;SCROLL, ERASE LINE 29 & PRINT (HL) PUSH B PUSH D PUSH H CALL SCROL LXI H,CSRE29 CALL OSTR POP H CALL OSTR POP D POP B RET ;-------------------------------------------------- ; GRAPHICS DATA BASE BLOCK: ; BLACK PAWN ON WHITE SQUARE DB 00H,0B9H,00H,0B9H,00H,0B9H,00H,0B9H DB 00H,0B9H,80H,0B9H,08H,0B9H,00H,0B9H DB 00H,0B9H,0FH,081H,0F0H,81H,00H,0B9H DB 00H,0B9H,32H,0B9H,23H,0B9H,00H,0B9H ; BLACK KNIGHT ON WHITE SQUARE DB 00H,0B9H,88H,0B9H,88H,0B9H,00H,0B9H DB 0FCH,0B9H,08H,081H,00H,081H,0FH,0B9H DB 0C0H,0B9H,03H,81H,80H,081H,07H,0B9H DB 32H,0B9H,33H,0B9H,33H,0B9H,02H,0B9H ; BLACK BISHOP ON WHITE SQUARE DB 00H,0B9H,80H,0B9H,08H,0B9H,00H,0B9H DB 0E0H,0B9H,01H,81H,10H,081H,0EH,0B9H DB 70H,0B9H,08H,081H,80H,081H,07H,0B9H DB 20H,0B9H,32H,0B9H,23H,0B9H,02H,0B9H ; BLACK ROOK ON WHITE SQUARE DB 80H,0B9H,80H,0B9H,08H,0B9H,08H,0B9H DB 10H,0B9H,1FH,081H,0F1H,81H,01H,0B9H DB 00H,0B9H,0FH,081H,0F0H,81H,00H,0B9H DB 30H,0B9H,33H,0B9H,33H,0B9H,03H,0B9H ; BLACK QUEEN ON WHITE SQUARE DB 08H,0B9H,00H,0B9H,00H,0B9H,80H,0B9H DB 1FH,081H,31H,081H,13H,081H,0F1H,81H DB 31H,0B9H,0CH,081H,0C0H,81H,13H,0B9H DB 32H,0B9H,33H,0B9H,33H,0B9H,23H,0B9H ; BLACK KING ON WHITE SQUARE DB 00H,0B9H,80H,0B9H,08H,0B9H,00H,0B9H DB 88H,0B9H,0F1H,0B9H,1FH,0B9H,88H,0B9H DB 0FH,081H,11H,081H,11H,081H,0F0H,81H DB 32H,0B9H,33H,0B9H,33H,0B9H,23H,0B9H ; TOPPLED BLACK KING ON WHITE SQUARE DB 08H,0B9H,88H,0B9H,88H,0B9H,00H,0B9H DB 0FFH,81H,00H,081H,0FCH,81H,00H,0B9H DB 0FFH,81H,00H,081H,0F3H,81H,00H,0B9H DB 01H,0B9H,11H,0B9H,51H,0B9H,4EH,0B9H ; MESSAGES GRTTNG: DB FF,ESC,PGE,FGON,14,MAGENT,3,22,10 DB "WELCOME TO SARGON 1",15,GREEN DB 3,20,13,"A CHESS PLAYING PROGRAM" DB 3,15,20,CYAN DB "WRITTEN BY DAN & KATHE SPRACKLEN" DB 3,16,22 DB "CONVERTED TO CCII BY MAX ALLAN" DB 3,6,26,RED DB "THIS PROGRAM HAS BEEN RELEASED TO THE" DB " NSWUG LIBRARY" DB 3,23,27 DB "FOR USER TESTING",GREEN DB EOS MSGOPT: DB FF,3,0,4,MAGENT,"N",GREEN,"EW GAME" DB CR,LF,LF DB MAGENT,"C",GREEN,"REATE OWN BOARD" DB CR,LF,LF DB MAGENT,"A",GREEN,"MEND EXISTING GAME" DB CR,LF,LF DB MAGENT,"S",GREEN,"AVE EXISTING GAME" DB CR,LF,LF DB MAGENT,"L",GREEN,"OAD PREVIOUS GAME" DB CR,LF,LF DB MAGENT,"H",GREEN,"ELP" DB CR,LF,LF DB MAGENT,"<ESC>",GREEN," TO RETURN TO FCS" DB " AT ANY TIME? ",EOS MSGCON: DB 3,18,31,MAGENT DB "PRESS <RETURN> TO CONTINUE",3,64,0,EOS MSGHLP: DB FF,3,25,3,RED,14,"COMMANDS",15 DB CR,LF,LF,CYAN DB "WHEN CREATING OR AMENDING A " DB "GAME, USE THE LEFT AND RIGHT ARROWS" DB CR,LF DB "TO SELECT EACH SQUARE THEN ENTER " DB "PIECE, COLOUR & MOVED-CODE" DB CR,LF DB "E.G. ",MAGENT,"K,W,1" DB CR,LF,LF,CYAN,"WHERE PIECE = " DB MAGENT,"K",CYAN,"ING, " DB MAGENT,"Q",CYAN,"UEEN, " DB MAGENT,"R",CYAN,"OOK, " DB MAGENT,"B",CYAN,"ISHOP, K" DB MAGENT,"N",CYAN,"IGHT OR " DB MAGENT,"P",CYAN,"AWN." DB CR,LF,CYAN," COLOUR = " DB MAGENT,"W",CYAN,"HITE OR " DB MAGENT,"B",CYAN,"LACK." DB CR,LF,CYAN," MOVED-CODE = " DB MAGENT,"0",CYAN," FOR NEVER MOVED & " DB MAGENT,"1",CYAN," FOR PIECE MOVED BEFORE" DB CR,LF,LF,CYAN DB "OR ENTER ANY OTHER KEY TO REMOVE PIECE." DB CR,LF,LF DB "USE ",MAGENT,"<CTRL R>",CYAN DB " WHEN FINISHED AMENDING." DB CR,LF,LF,RED DB " s s s s s s" DB CR,LF,LF,CYAN DB "WHEN MAKING A MOVE, ENTER " DB MAGENT,"FF-TT",CYAN," E.G. " DB MAGENT,"E2-E4" DB CR,LF,CYAN DB "WHERE FF IS THE 'FROM' SQUARE AND" DB " TT IS THE 'TO' SQUARE." DB CR,LF,LF DB "TO CASTLE, JUST ENTER TO KING'S MOVE " DB "E.G. ",MAGENT,"E1-G1",CYAN DB CR,LF DB "AND THE ROOK WILL FOLLOW." DB CR,LF,LF DB "TO CAPTURE EN-PASSANT, SIMPLY ENTER " DB "THE PAWN'S MOVE." DB CR,LF,LF DB "IF ",RED,"SARGON",CYAN," OR YOU ARE " DB "CHECKMATED, ENTER ",MAGENT,"<SPACE>" DB CYAN," TO PLAY AGAIN." DB CR,LF,LF DB "TO RESIGN ,TAKE BACK A MOVE OR SAVE " DB "A GAME FOR LATER PLAYING," DB CR,LF DB "ENTER ",MAGENT,"<CTRL R>",CYAN,"." DB EOS MSGSPC: DB CR,LF,LF,"ENTER FILE SPECIFICATION" DB " (DEFAULT=.CHS) ",EOS CLRMSG: DB CR,LF,LF,GREEN DB "DO YOU WANT TO PLAY " DB MAGENT,"W",GREEN,"HITE OR " DB MAGENT,"B",GREEN,"LACK? " DB EOS MSGERR: DB RED,"DISK ERROR",GREEN,EOS TITLE1: DB "SARGON" TITLE2: DB "PLAYER" CSR329: DB MAGENT,3,3,29,EOS CSRE29: DB 3,0,29," ",CR,EOS CSR929: DB RED,3,9,29,EOS MVENUM: DB CYAN," ",MAGENT,EOS MVEMSG: DB " - ",EOS OO: DB "0-0 ",EOS OOO: DB "0-0-0",EOS PXPEP: DB "PXPEP",EOS CKMSG: DB GREEN,"CHECK",EOS MATEMG: DB GREEN,"MATE",EOS MTMSG: DB GREEN,"MATE IN " MTPL: DB " ",EOS PCS: DB "KQRBNP" UWIN: DB CYAN,"YOU WIN",GREEN,EOS IWIN: DB CYAN,"I WIN",GREEN,EOS AGAIN: DB FF,3,0,2,GREEN DB "CARE FOR ANOTHER GAME (" DB MAGENT,"Y/N",GREEN,")? ",EOS CRTNES: DB 3,0,0,GREEN,"IS THIS RIGHT (" DB MAGENT,"Y/N",GREEN,")? ",EOS PLYDEP: DB CR,LF,LF,GREEN,"SELECT LOOK AHEAD (" DB MAGENT,"1-6",GREEN,") ",EOS TITLE: DB 3,0,0 DB MAGENT," ",RED," ",CR,LF DB MAGENT," ffffff",RED," ffffff ",EOS WSMOVE: DB CR,LF,LF,GREEN,"WHOSE MOVE IS IT (" DB MAGENT,"W/B",GREEN,")? ",EOS INVAL1: DB GREEN," INVALID MOVE",EOS INVAL2: DB " TRY AGAIN",EOS ENTPCE: DB 3,0,0,CYAN,"PIECE? ",3,7,0,EOS MSGNOK: DB 3,0,4,RED,"MISSING KING(S)",EOS DEFALT: DB "CHS" SPCBUF: DS 20 ; VARIABLES MVFBIN: DS 1 ;PLAYER'S MOVE FROM INDEX MVTBIN: DS 1 ; " " TO " BRDPOS: DS 1 ANBDPS: DS 1 NORMAD: DS 2 LINECT: DS 1 ;-------------------------------------------------- END