MODEL TINY P8086 SPEED EQU 6 CODESEG STARTUPCODE Ofs100: Start: XOR AX,AX INT 10h CLD MOV AX,1001h MOV BH,4 INT 10h MOV AX,0B800h MOV ES,AX XOR DI,DI MOV CX,5 Lines: PUSH CX MOV BX,2F4h CALL PutLine MOV BX,2109h CALL PutLine MOV CL,40 REP STOSW POP CX LOOP Lines MOV CX,401+42 REP STOSW MOV DI,1920 MOV SI,(100h+Paddle-Ofs100) LODSB MOV CL,5 PadLop: MOVSB STOSB LOOP PadLop MOV AX,CS INC AH MOV DS,AX Main: XOR BX,BX CALL Sub1 MOV BL,78 CALL Step MOV BX,-4 CALL Sub1 JMP Main Sub1: MOV CL,11 LS: CALL Step LOOP LS RET PutLine: MOV CL,10 Cols: MOV AX,BX STOSW STOSW XOR AX,AX STOSW LOOP Cols MOV CL,10 REP STOSW RET SwapS: PUSH DS PUSH ES XOR SI,SI XOR DI,DI MOV CX,1000 POP DS POP ES RET Step: PUSH BX MOV BX,-2 CALL P POP BX P: PUSH CX CALL SwapS PUSH CX XOR AX,AX REP STOSW POP CX MOV AH,2 INT 16h MOV BP,-2 AND AX,3 CMP AL,CS:[101h+Count-Ofs100] JNZ NoFire MOV DL,0CFh INC WORD PTR CS:[100h+Count-Ofs100] JMP Flyt NoFire: SUB BP,AX AND AX,1 JZ Flyt XOR BP,BP Flyt: LODSW OR AH,AH JZ Skip CMP AH,9 JZ PAD CMP AH,4 JNZ ALIEN MOV ES:[SI-82],AX LOOP Flyt PAD: MOV ES:[SI+BP],AX CMP AL,DL JNZ X MOV ES:[SI-82],4B3h X: JMP Skip ALIEN: MOV ES:[SI+BX],AX Skip: LOOP Flyt MOV DX,3DAh MOV CL,SPEED WVBL: MOV AH,1 INT 16h OR AX,AX JZ Quit IN AL,DX AND AL,8 JZ WVBL LOOP WVBL Continue: CALL SwapS REP MOVSW POP CX Return: RET Quit: MOV AX,3 INT 10h INT 20h Count: DW 03BEh Paddle: DB 09h,0D5h,0CDh,0CFh,0CDh,0B8h END