XEQ 100H ORG 100H BEGIN XRA A STA YSCORE STA RSCORE ENTER LXI SP,STACK CALL CLEAR CALL SCORE LXI H,MS2 LXI B,MNAME CALL MSGO DIFF LXI H,MS1 LXI B,MDIFF CALL MSGO CALL INP ANI 0FH STA DFST START CALL CLEAR CALL SCORE MVI D,DCORN MVI E,ECORN TOP MVI B,WIDTH T1 CALL PLOT MVI M,'X' INX D CALL PLOT MVI M,' ' INX D DCR B JNZ T1 RSIDE MVI B,HEIGHT DCR E DCR E R1 INR D CALL PLOT MVI M,'X' DCR B JNZ R1 BOTM MVI B,WIDTH-1 B1 DCR E CALL PLOT MVI M,' ' DCR E CALL PLOT MVI M,'X' DCR B JNZ B1 LSIDE MVI B,HEIGHT L1 DCR D CALL PLOT MVI M,'X' DCR B JNZ L1 SEED LDA DFST RLC MOV B,A MVI A,1EH SUB B MOV B,A LOOP1 CALL RND ANI 0FH MOV D,A CALL RND ANI 7FH MOV E,A CALL LIMIT JC LOOP1 CALL PLOT MOV A,L ANI 0FEH MOV L,A MVI M,'X' DCR B JNZ LOOP1 ROSE LXI H,RCORN MVI M,'7' LXI H,RCORN+4 MVI M,'8' LXI H,RCORN+8 MVI M,'9' LXI H,RCORN+42H MVI M,5CH LXI H,RCORN+44H MVI M,5EH LXI H,RCORN+46H MVI M,2FH LXI H,RCORN+80H MVI M,'4' LXI H,RCORN+82H MVI M,0DH LXI H,RCORN+84H MVI M,'5' LXI H,RCORN+86H MVI M,09H LXI H,RCORN+88H MVI M,'6' LXI H,RCORN+0C2H MVI M,2FH LXI H,RCORN+0C4H MVI M,0BH LXI H,RCORN+0C6H MVI M,5CH LXI H,RCORN+100H MVI M,'1' LXI H,RCORN+104H MVI M,'2' LXI H,RCORN+108H MVI M,'3' ROBOT CALL SEL SHLD ROB1 CALL SEL SHLD ROB2 CALL SEL SHLD ROB3 CALL SEL SHLD ROB4 CALL SEL SHLD ROB5 CALL YOU JMP YMOVE SEL CALL RND ANI 0FH MOV D,A CALL RND ANI 0FEH MOV E,A CALL LIMIT JC SEL CALL PLOT MOV A,M CPI ' ' JNZ SEL MVI M,7 DCR B RNZ JMP YMOVE YOU CALL RND ANI 0FH MOV D,A CALL RND ANI 0FEH MOV E,A CALL LIMIT JC YOU CALL PLOT MOV A,M CPI ' ' JNZ YOU MVI M,0FH SHLD YOUP RET YMOVE CALL NEAR YMOV1 CALL INP LHLD YOUP MVI M,' ' CPI '6' CZ RT CPI '9' CZ UR CPI '8' CZ UP CPI '7' CZ UL CPI '4' CZ LF CPI '1' CZ LL CPI '2' CZ DN CPI '3' CZ LR CPI 'P' CZ PANIC CPI '5' JZ Y1 MOV A,M CPI ' ' JNZ DEATH Y1 MVI M,0FH SHLD YOUP CALL RMOVE CALL END JMP YMOVE INP PUSH H PUSH B PUSH D INP1 CALL 0C01FH JZ INP1 ANI 7FH POP D POP B POP H CPI 0DH JZ ENTER CPI 1BH JZ BEGIN RET RMOVE LHLD ROB1 CALL RDEAD JC RMOV1 CALL SEEK SHLD ROB1 RMOV1 LHLD ROB2 CALL RDEAD JC RMOV2 CALL SEEK SHLD ROB2 RMOV2 LHLD ROB3 CALL RDEAD JC RMOV3 CALL SEEK SHLD ROB3 RMOV3 LHLD ROB4 CALL RDEAD JC RMOV4 CALL SEEK SHLD ROB4 RMOV4 LHLD ROB5 CALL RDEAD RC CALL SEEK SHLD ROB5 RET RDEAD MOV A,M CPI 'X' STC RZ CMC RET CHEK MOV A,M CPI 0FH JZ DEATH CPI 'X' JZ FLASH MVI M,7 RET FLASH MVI D,0A0H FLAS1 MVI M,4 MVI E,0FFH FLAS2 DCR E JNZ FLAS2 MVI E,0FFH MVI M,84H FLAS3 DCR E JNZ FLAS3 DCR D JNZ FLAS1 MVI M,'X' XRA A RET SEEK MVI M,' ' PUSH H CALL SUBH POP H CALL DECH PUSH H CALL SUBV POP H CALL DECV JMP CHEK SUBV MOV A,L ANI 0C0H MOV L,A XCHG LHLD YOUP MOV A,L ANI 0C0H SUB E MOV C,A MOV A,H SBB D MOV B,A RET DECV RLC JC UP MOV A,C RRC JC UP XRA A ADD B JNZ DN ADD C JNZ DN RET STACK EQU 0CBFFH RCORN EQU 0CCF6H DCORN EQU 0 ECORN EQU 2 HEIGHT EQU 0DH WIDTH EQU 19H LOWD EQU DCORN+1 LOWE EQU ECORN+1 HID EQU DCORN+HEIGHT-1 HIE EQU LOWE+WIDTH+WIDTH-4 MS1 EQU 0CFCCH MS2 EQU 0CD10H SCR EQU 0CFBDH SRE EQU 0CF77H MSY EQU 0CFB8H MT1 EQU 0CFF5H ENDM1 EQU 0CD10H ENDM3 EQU 0CD90H SH DW 1234H DW 4567H DFST DS 1 RSCORE DS 1 YSCORE DS 1 YOUP DS 2 ROB1 DS 2 ROB2 DS 2 ROB3 DS 2 ROB4 DS 2 ROB5 DS 2 CLEAR EQU 0C0D5H COPY CH2