home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS - Coast to Coast
/
simteldosarchivecoasttocoast.iso
/
pcmag
/
vol6n20.zip
/
FIGURES.ZIP
/
FIGURE.9
< prev
next >
Wrap
Text File
|
1987-10-16
|
2KB
|
44 lines
A7: FOR I := 2 TO Max DIV 2 DO {Only have to go to halfway mark}
6233:2D7F B80200 MOV AX,0002
6233:2D82 50 PUSH AX
6233:2D83 B8E803 MOV AX,03E8
6233:2D86 B90200 MOV CX,0002
6233:2D89 99 CWD
6233:2D8A F7F9 IDIV CX
A8: BEGIN
6233:2D8C 59 POP CX
6233:2D8D 91 XCHG CX,AX
6233:2D8E 2BC8 SUB CX,AX
6233:2D90 7D03 JGE 2D95
6233:2D92 E94B00 JMP A18
6233:2D95 41 INC CX
6233:2D96 A34A06 MOV [I],AX
6233:2D99 51 PUSH CX
A9: IF Sieve[I] THEN {If I has not yet been eliminated}
6233:2D9A A14A06 MOV AX,[I]
6233:2D9D 97 XCHG DI,AX
6233:2D9E 8A856102 MOV AL,[DI+0261]
6233:2DA2 32E4 XOR AH,AH
6233:2DA4 0BC0 OR AX,AX
6233:2DA6 7503 JNZ A11
6233:2DA8 E92A00 JMP A17
A11: K := I+I; {K starts as first multiple of I}
6233:2DAB A14A06 MOV AX,[I]
6233:2DAE 03064A06 ADD AX,[I]
6233:2DB2 A34C06 MOV [K],AX
A13: Sieve[K] := False;
6233:2DB5 A14C06 MOV AX,[K]
6233:2DB8 97 XCHG DI,AX
6233:2DB9 B80000 MOV AX,0000
6233:2DBC 88856102 MOV [DI+0261],AL
A14: K := K+1; {More multiples of I}
6233:2DC0 A14C06 MOV AX,[K]
6233:2DC3 03064A06 ADD AX,[I]
6233:2DC7 A34C06 MOV [K],AX
A15: UNTIL K > Max;
6233:2DCA A14C06 MOV AX,[K]
6233:2DCD 3DE803 CMP AX,03E8
6233:2DD0 7F03 JG A17
6233:2DD2 E9E0FF JMP A13
A17: END;