Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
MODULE
BYTE RND=$D20A
BYTE P=20
CARD A,B,C,
proc test()
P=0
A=0
WHILE P<100
DO
A=A+1
R=RAND(0)
OD
B=0
P=0
WHILE P<100
DO
B=B+1
R=RND
OD
C=0
P=0
WHILE P<100
DO
C=C+1
R=RAND(32)
OD
PRINT("RND TIMES = ")
PRINTCE(B)
PRINT("RAND TIMES = ")
PRINTCE(A)
PRINT("RAND(32) TIMES = ")
PRINTCE(C)
return
startujemy:
RND TIMES = 18341
RAND TIMES = 44298
RAND(32) TIMES = 6449
* = 0000
0000 85 A2 STA $A2
0002 C6 A2 DEC $A2
0004 A9 01 LDA #$01
0006 C5 A2 CMP $A2
0008 B0 05 BCS $000F
000A 38 SEC
000B 2A ROL A
000C 38 SEC
000D B0 F7 BCS $0006
000F 85 A3 STA $A3
0011 AD 0A D2 LDA $D20A
0014 25 A3 AND $A3
0016 C5 A2 CMP $A2
0018 F0 04 BEQ $001E
001A 90 02 BCC $001E
001C B0 F3 BCS $0011
001E 85 A0 STA $A0
0020 60 RTS
0021 .END
;BYTE FUNC Rand(BYTE range)
; returns random number between 0 and
; range-1. If range=0, then a random
; number between 0 and 255 is returned
rand ldx $d20a ; RANDOM
cmp #0
beq ..rand1
stx afcur
ldx #0
stx afcur+1
jsr multi
..rand1 stx args
rts
Kaz:
Wystarczy przeczytać pierwszy akapit, w którym TDC publicznie zarzuca nieuczciwość KMK w porównaniu asemblera z Action!. Uuuu panie, nawet jeśli to było tylko takie zagajenie artka, to psychologiczie biorąc - błąd. Aż się prosiło o zemstę :)