Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > ZX Spectrum Software > Программирование

Reply
 
Thread Tools Display Modes
Old 23rd June 2010, 04:39   #1
Master
 
GM BIT's Avatar
 
Join Date: 27th November 2008
Location: Красноярск
Posts: 737
Thanks: 406
Thanked 231 Times in 145 Posts
GM BIT is a jewel in the roughGM BIT is a jewel in the roughGM BIT is a jewel in the rough
Default RND

Дайте генератор RND без использования ПЗУ

Такой конечно хороший, но не подходит
rnd ld a,3
ld c,a
add a,a
add a,a
add a,c
inc a
ld (rnd+1),a

Last edited by GM BIT; 23rd June 2010 at 04:42.
GM BIT is offline   Reply With Quote
Old 23rd June 2010, 05:56   #2
Master
 
Join Date: 8th May 2007
Location: Dnepropetrovsk
Posts: 801
Thanks: 340
Thanked 389 Times in 195 Posts
Barmaley_m is a glorious beacon of lightBarmaley_m is a glorious beacon of lightBarmaley_m is a glorious beacon of lightBarmaley_m is a glorious beacon of lightBarmaley_m is a glorious beacon of lightBarmaley_m is a glorious beacon of light
Default

Вот один из самых простых и быстрых методов:

http://ru.wikipedia.org/wiki/%D0%9B%...82%D0%BE%D0%B4
Barmaley_m is offline   Reply With Quote
Old 23rd June 2010, 17:25   #3
Master
 
Join Date: 8th January 2007
Location: Красноярск
Posts: 546
Thanks: 204
Thanked 1,025 Times in 300 Posts
tiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud oftiboh has much to be proud of
Default

Вот хороший генератор

RND LD A,53
ADD A,A
JR NC,$+5
LD C,51
XOR C
LD (RND+1),A

Можно доработать, добавив строки:

LD C,A
LD A,R
XOR C
tiboh is offline   Reply With Quote
The Following User Says Thank You to tiboh For This Useful Post:
GM BIT (24th June 2010)
Old 23rd June 2010, 19:25   #4
Veteran
 
Sinus's Avatar
 
Join Date: 29th January 2005
Location: Belarus, Grodno
Posts: 1,270
Thanks: 117
Thanked 189 Times in 87 Posts
Sinus has a spectacular aura aboutSinus has a spectacular aura aboutSinus has a spectacular aura about
Default

я обычно такой использую:

Code:
rnd: ld a,42
     ld hl,rnd_tab

     dup rnd_tab_last - rnd_tab
     add a,(hl)
     ld (hl),a
     inc hl
     edup

     ld (rnd+1),a
     ret

rnd_tab:
     db 'asdGK'
rnd_tab_last:
чем длиннее таблица, тем более случайные будут числа (но и тем медленней будет работать)
__________________
[target] [zemu] [js8x] [pouet 1, 2]
KAY-1024, 5''FDD, 3''FDD, HDD
Sinus is offline   Reply With Quote
The Following User Says Thank You to Sinus For This Useful Post:
GM BIT (24th June 2010)
Old 8th September 2010, 10:36   #5
Master
 
GM BIT's Avatar
 
Join Date: 27th November 2008
Location: Красноярск
Posts: 737
Thanks: 406
Thanked 231 Times in 145 Posts
GM BIT is a jewel in the roughGM BIT is a jewel in the roughGM BIT is a jewel in the rough
Default

Собрал в кучку, общими усилиями

RND_8 LD A,3
LD C,A
ADD A,A
ADD A,A
ADD A,C
INC A
LD (RND_8+1),A
RET

;---------------------------------------------------------------

RND_8 LD A,53
ADD A,A
JR NC,$+5
LD C,51
XOR C
; LD C,A
; LD A,R
; XOR C
LD (RND_8+1),A
RET

;---------------------------------------------------------------

RND_8 LD A,42
LD HL,RND_TAB
DUP 5
ADD A,(HL)
LD (HL),A
INC HL
EDUP
LD (RND_8+1),A
RET
RND_TAB DB 'as^GK'

;---------------------------------------------------------------

RND_8 LD A,(R1)
LD D,A
LD A,(R2)
LD (R1),A
ADD A,D
LD D,A
LD A,(R3)
LD (R2),A
ADD A,D
RLCA
LD (R3),A
RET
R1 DEFB 200
R2 DEFB 71
R3 DEFB 153

;---------------------------------------------------------------

RND_32 LD HL,0
LD A,H
AND #3F
LD H,A
LD D,(HL)
INC HL
LD E,(HL)
INC HL
LD A,(HL)
XOR D
XOR E
SUB 16
LD B,A
LD A,D
AND 3
LD D,A
LD E,B
LD (RND_32+1),HL
RET

;---------------------------------------------------------------

RND_32 LD HL,#FFFF
LD A,H
ADD HL,HL
XOR H
ADD HL,HL
ADD HL,HL
ADD HL,HL
XOR H
ADD HL,HL
ADD HL,HL
XOR H
ADD HL,HL
ADD HL,HL
LD L,A
LD (RND_32+1),HL
RET

;---------------------------------------------------------------

RND_32 LD HL,0
LD A,H
ADD A,#77
LD H,A
RLC L
ADD A,L
LD L,A
LD (RND_32+1),HL
RET

;---------------------------------------------------------------

RND_32 LD HL,#FFFF
LD A,H
OR L
JR NZ,NOZERO
INC L
NOZERO LD A,L
RLCA
XOR H
RLCA
RLCA
XOR H
RLCA
XOR H
RLCA
ADC HL,HL
LD (RND_32+1),HL
RET

;---------------------------------------------------------------

RND_32 LD HL,0
LD D,H
LD E,L
ADD HL,HL
ADD HL,HL
ADD HL,DE
INC HL
LD (RND_32+1),HL
RET

;---------------------------------------------------------------

Процедура ПЗУ

RND_32 LD DE,0
XOR A
LD H,A
LD L,A
LD B,A
ADD HL,DE
ADC A,B
DUP 3
ADD HL,HL
ADC A,A
EDUP
ADD HL,DE
ADC A,B
DUP 2
ADD HL,HL
ADC A,A
EDUP
ADD HL,DE
ADC A,B
ADD HL,HL
ADC A,A
ADD HL,DE
ADC A,B
SUB #4A
NEG
LD C,A
ADD HL,BC
LD (RND_32+1),HL
RET

;---------------------------------------------------------------
GM BIT is offline   Reply With Quote
Old 15th September 2010, 00:09   #6
Veteran
 
Sinus's Avatar
 
Join Date: 29th January 2005
Location: Belarus, Grodno
Posts: 1,270
Thanks: 117
Thanked 189 Times in 87 Posts
Sinus has a spectacular aura aboutSinus has a spectacular aura aboutSinus has a spectacular aura about
Default

ещё бы тесты, какое выдаёт более рандомное распределение (например, поставить 1000 точек по рандому на экране) и как по скорости (примерно, по бордру, вызвав функцию раз 100).
__________________
[target] [zemu] [js8x] [pouet 1, 2]
KAY-1024, 5''FDD, 3''FDD, HDD
Sinus is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 00:45.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика