Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!sdd.hp.com!spool.mu.edu!sol.ctr.columbia.edu!emory!ogicse!orstcs!usenet!mist.CS.ORST.EDU!curfmanm From: curfmanm@mist.cs.orst.edu (Matthew Curfman) Newsgroups: comp.sys.apple2 Subject: Re: Random Numbers Message-ID: <1991Jan31.012535.15870@usenet@scion.CS.ORST.EDU> Date: 31 Jan 91 01:25:35 GMT Sender: @usenet@scion.CS.ORST.EDU Organization: Technovelty, Inc. Lines: 49 Originator: curfmanm@mist.CS.ORST.EDU Nntp-Posting-Host: mist.cs.orst.edu | Hi all. I am looking for a way to generate random numbers in an assembly | language program. The entry point to the applesoft RND function would | be a start, but I really just need an algorithm. I'm using one that | shifts a 2-byte seed left once and adds it back to the seed. that doesn't | give very good results after the first few numbers. | | thanks | | greg c489030@umcvmb.missouri.edu The following routine has worked for everything I have ever needed: 300: 4c 07 03 JMP 0307 303: 27 0c a1 c9 (Random Seeds) 307: ad 06 03 LDA 0306 30a: 0a ASL 30b: 0a ASL 30c: 0a ASL 30d: 4d 06 03 EOR 0306 310: 0a ASL 311: 0a ASL 312: 2e 03 03 ROL 0303 315: 2e 04 03 ROL 0304 318: 2e 05 03 ROL 0305 31b: 2e 06 03 ROL 0306 31e: 60 RTS Call the routine, and then an 8-bit random number can be then pulled from $0304 by your application. While this routine simulates a random number, it does in fact repeat after several million numbers. It is based on an article in Radio Electronics by Don Lancaster in his Hardware Hacker column. _______________________________________________________________________________ Matt Curfman Technovelty. Inc. curfmanm@prism.cs.orst.edu Oregon State University OSU says what it says. I say what I say. We don't say the same thing. -- _______________________________________________________________________________ Matt Curfman Technovelty. Inc. curfmanm@mist.cs.orst.edu Oregon State University OSU says what it says. I say what I say. We don't say the same thing.