Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #2015

ProDOS and the random seed RNDL

From D Finnigan <dog_cow@macgui.com>
Newsgroups comp.sys.apple2.programmer
Subject ProDOS and the random seed RNDL
Date 2015-12-21 19:45 +0000
Organization Mac GUI
Message-ID <dog_cow-1450727254@macgui.com> (permalink)

Show all headers | View raw


Since converting the Marina IP source from DOS 3.3 to ProDOS, I've noticed
that link-local addresses, which were previously randomly generated, were no
longer random. I took the time to track down this issue yesterday.

I'm using ProDOS 8 v1.9 on an enhanced (platinum) Apple IIe but I believe
all versions of ProDOS have this problem.

I had been using RNDL and RNDH ($4E and $4F) as my random seed. I put
together this program to test what was happening:

A5 4E
20 DA FD
A5 4F
20 DA FD
4C D0 03

]BRUN RND
0D80

*8000G
958E

When I saved it as RND and did BRUN from the Applesoft prompt, I always got
0D80. But when I ran the program using the Monitor G command, I got changing
results, which is what I expected. It looked like ProDOS was setting RNDL
and RNDH to some constant value. Neither the white ProDOS Technical
Reference Manual nor Gary B. Little's Apple ProDOS book mentioned this
behavior. Nor could I find any mention of it from searching these
newsgroups.

Poking around in the LC RAM area for ProDOS I found this code at $E189:
	LDY #1
	LDA ($40),y
	STA $4E
	INY
	LDA ($40),Y
	STA $4F

I went back to the ProDOS 8 source in MliSrc.aii and found that it's a part
of the get_prefix routine:

getprefx	clc			; calculate how	big a buffer is	needed to 
		ldy	#c_path		; get index to users pathname buffer
		lda	(par),y
		sta	usrbuf
		iny
		lda	(par),y
		sta	usrbuf+1

So it is seen that RNDL and RNDH are being used as part of a buffer for
ProDOS.

My work-around was to insert a call to GETLN ($FD6A) at the beginning of
Marina in order to reseed the random number.

Hum-ho.

-- 
]DF$
The Marina IP stack for Apple II--
http://marina.a2hq.com/

Back to comp.sys.apple2.programmer | Previous | NextNext in thread | Find similar


Thread

ProDOS and the random seed RNDL D Finnigan <dog_cow@macgui.com> - 2015-12-21 19:45 +0000
  Re: ProDOS and the random seed RNDL awanderin <awanderin@gmail.com> - 2015-12-22 23:38 -0700
    Re: ProDOS and the random seed RNDL D Finnigan <dog_cow@macgui.com> - 2015-12-23 19:39 +0000
  Re: ProDOS and the random seed RNDL gids.rs@sasktel.net - 2015-12-23 09:23 -0800
    Re: ProDOS and the random seed RNDL D Finnigan <dog_cow@macgui.com> - 2015-12-23 19:51 +0000
      Re: ProDOS and the random seed RNDL gids.rs@sasktel.net - 2015-12-23 17:25 -0800
        Re: ProDOS and the random seed RNDL D Finnigan <dog_cow@macgui.com> - 2016-01-04 19:02 +0000

csiph-web