mirror of https://github.com/falsovsky/z80.git
No longer uses pre-calculated values for X and Y
This commit is contained in:
parent
95d804311a
commit
6895a3fcd6
|
@ -85,23 +85,76 @@ main
|
||||||
pop bc
|
pop bc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
PROC
|
||||||
|
; D = valor minimo
|
||||||
|
; E = valor maximo
|
||||||
|
Seed dw $fa
|
||||||
|
|
||||||
|
get_rnd
|
||||||
|
push bc ; Guarda o valor de RET na stack
|
||||||
|
|
||||||
|
get_rnd_loop
|
||||||
|
ld a, (Seed)
|
||||||
|
ld b, a
|
||||||
|
|
||||||
|
rrca ; multiply by 32
|
||||||
|
rrca
|
||||||
|
rrca
|
||||||
|
xor 0x1f
|
||||||
|
|
||||||
|
add a, b
|
||||||
|
sbc a, 255 ; carry
|
||||||
|
|
||||||
|
ld (Seed), a
|
||||||
|
|
||||||
|
ld h, a ; Save A to H
|
||||||
|
|
||||||
|
ld a, e ; Valor maximo em A
|
||||||
|
cp h
|
||||||
|
|
||||||
|
jr z, get_rnd_ret ; É igual
|
||||||
|
jr c, get_rnd_loop ; Se for menor
|
||||||
|
|
||||||
|
ld a, d
|
||||||
|
cp h
|
||||||
|
|
||||||
|
jr z, get_rnd_ret
|
||||||
|
jr c, get_rnd_ret
|
||||||
|
|
||||||
|
jr get_rnd_loop
|
||||||
|
|
||||||
|
get_rnd_ret
|
||||||
|
ld a, h
|
||||||
|
pop bc ; Tira o valor de RET da stack
|
||||||
|
ret
|
||||||
|
ENDP
|
||||||
|
|
||||||
PROC
|
PROC
|
||||||
; Initialize stars X and Y with "random" values
|
; Initialize stars X and Y with "random" values
|
||||||
initStars
|
initStars
|
||||||
push bc
|
push bc
|
||||||
ld d, MAX_STARS ; Number of stars to process
|
ld d, MAX_STARS ; Number of stars to process
|
||||||
ld hl, STARS ; HL points to X of first start
|
ld hl, STARS ; HL points to X of first start
|
||||||
|
|
||||||
initStars_loop
|
initStars_loop
|
||||||
|
push de
|
||||||
|
|
||||||
push hl
|
push hl
|
||||||
call getRandomX ; Get a random value for X | 1 - 250 | TODO: 255?
|
ld d, 0
|
||||||
|
ld e, 250
|
||||||
|
call get_rnd ; Get a random value <= 255
|
||||||
pop hl
|
pop hl
|
||||||
|
|
||||||
ld (hl), a ; Set X to random value
|
ld (hl), a ; Set X to random value
|
||||||
|
|
||||||
inc hl ; points to Y
|
inc hl ; points to Y
|
||||||
|
|
||||||
push hl
|
push hl
|
||||||
call getRandomY ; Get a random value for Y | 1 - 191 | TODO : allow 0
|
ld d, 0
|
||||||
|
ld e, 191
|
||||||
|
call get_rnd ; Get a random value <= 191
|
||||||
pop hl
|
pop hl
|
||||||
|
|
||||||
ld (hl), a ; Set Y to random value
|
ld (hl), a ; Set Y to random value
|
||||||
|
|
||||||
inc hl ; points to Speed
|
inc hl ; points to Speed
|
||||||
|
@ -109,11 +162,19 @@ initStars_loop
|
||||||
push hl
|
push hl
|
||||||
call getRandomSpeed ; Get a random value for Speed | 1 - 4
|
call getRandomSpeed ; Get a random value for Speed | 1 - 4
|
||||||
pop hl
|
pop hl
|
||||||
|
|
||||||
|
;push hl
|
||||||
|
;ld d, 1
|
||||||
|
;ld e, 4
|
||||||
|
;call get_rnd
|
||||||
|
;pop hl
|
||||||
|
|
||||||
ld (hl), a ; Set Speed to random value
|
ld (hl), a ; Set Speed to random value
|
||||||
|
|
||||||
ld bc, $3 ; Jump to next star
|
ld bc, $3 ; Jump to next star
|
||||||
adc hl, bc ; Skip PrevX and PrevY
|
adc hl, bc ; Skip PrevX and PrevY
|
||||||
|
|
||||||
|
pop de
|
||||||
dec d ; Decrement counter
|
dec d ; Decrement counter
|
||||||
jr nz, initStars_loop ; If not zero, do it again
|
jr nz, initStars_loop ; If not zero, do it again
|
||||||
|
|
||||||
|
@ -121,46 +182,6 @@ initStars_loop
|
||||||
ret
|
ret
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
PROC
|
|
||||||
; Gets a value a from a list of pre-calculated values
|
|
||||||
; Returns to begin after 0 is found | TODO: change this
|
|
||||||
getRandomX
|
|
||||||
push hl
|
|
||||||
getRandomX_loop
|
|
||||||
ld hl, (xrandpos)
|
|
||||||
ld a, (hl)
|
|
||||||
cp $0
|
|
||||||
jr z, getRandomX_reset
|
|
||||||
inc hl
|
|
||||||
ld (xrandpos), hl
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
getRandomX_reset
|
|
||||||
ld hl, xranddata
|
|
||||||
ld (xrandpos), hl
|
|
||||||
jr getRandomX_loop
|
|
||||||
ENDP
|
|
||||||
|
|
||||||
PROC
|
|
||||||
; Gets a value a from a list of pre-calculated values
|
|
||||||
; Returns to begin after 0 is found | TODO: change this
|
|
||||||
getRandomY
|
|
||||||
push hl
|
|
||||||
getRandomY_loop
|
|
||||||
ld hl, (yrandpos)
|
|
||||||
ld a, (hl)
|
|
||||||
cp $0
|
|
||||||
jr z, getRandomY_reset
|
|
||||||
inc hl
|
|
||||||
ld (yrandpos), hl
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
getRandomY_reset
|
|
||||||
ld hl, yranddata
|
|
||||||
ld (yrandpos), hl
|
|
||||||
jr getRandomY_loop
|
|
||||||
ENDP
|
|
||||||
|
|
||||||
PROC
|
PROC
|
||||||
; Gets a value a from a list of pre-calculated values
|
; Gets a value a from a list of pre-calculated values
|
||||||
; Returns to begin after 0 is found | TODO: change this
|
; Returns to begin after 0 is found | TODO: change this
|
||||||
|
@ -239,8 +260,11 @@ increment_x_zero
|
||||||
inc hl ; point to Y
|
inc hl ; point to Y
|
||||||
|
|
||||||
push hl
|
push hl
|
||||||
call getRandomY ; Get a random Y value
|
ld d, 0
|
||||||
|
ld e, 191
|
||||||
|
call get_rnd ; Get a random value below 191
|
||||||
pop hl
|
pop hl
|
||||||
|
|
||||||
ld (hl), a ; Set Y = getRandomY
|
ld (hl), a ; Set Y = getRandomY
|
||||||
|
|
||||||
inc hl ; point to speed
|
inc hl ; point to speed
|
||||||
|
|
|
@ -3,49 +3,18 @@
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
# Generate how many random values
|
|
||||||
MAX_STARS = 10
|
|
||||||
Generate = 100
|
Generate = 100
|
||||||
xrandom = []
|
|
||||||
yrandom = []
|
|
||||||
speedrandom = []
|
speedrandom = []
|
||||||
|
|
||||||
random.seed()
|
random.seed()
|
||||||
|
|
||||||
for idx in range(Generate):
|
for idx in range(Generate):
|
||||||
x = random.randint(1,250)
|
|
||||||
while(x in xrandom):
|
|
||||||
x = random.randint(1,250)
|
|
||||||
xrandom.append(x)
|
|
||||||
|
|
||||||
speed = random.randint(1,4)
|
speed = random.randint(1,4)
|
||||||
speedrandom.append(speed)
|
speedrandom.append(speed)
|
||||||
|
|
||||||
for idx in range(0,191):
|
|
||||||
y = random.randint(1,191)
|
|
||||||
while(y in yrandom):
|
|
||||||
y = random.randint(1,191)
|
|
||||||
yrandom.append(y)
|
|
||||||
|
|
||||||
f = open('randomvalues.asm', 'w')
|
f = open('randomvalues.asm', 'w')
|
||||||
f.write("xrandpos dw xranddata\n")
|
|
||||||
f.write("yrandpos dw yranddata\n")
|
|
||||||
f.write("speedrandpos dw speedranddata\n\n")
|
f.write("speedrandpos dw speedranddata\n\n")
|
||||||
|
|
||||||
for idx in range(len(xrandom)):
|
|
||||||
if idx == 0:
|
|
||||||
f.write("xranddata\n")
|
|
||||||
f.write("\t\tdb %i\n" % (xrandom[idx]))
|
|
||||||
|
|
||||||
f.write("\t\tdb 0\n\n")
|
|
||||||
|
|
||||||
for idx in range(len(yrandom)):
|
|
||||||
if idx == 0:
|
|
||||||
f.write("yranddata\n")
|
|
||||||
f.write("\t\tdb %i\n" % (yrandom[idx]))
|
|
||||||
|
|
||||||
f.write("\t\tdb 0\n\n")
|
|
||||||
|
|
||||||
for idx in range(len(speedrandom)):
|
for idx in range(len(speedrandom)):
|
||||||
if idx == 0:
|
if idx == 0:
|
||||||
f.write("speedranddata\n")
|
f.write("speedranddata\n")
|
||||||
|
|
|
@ -1,403 +1,104 @@
|
||||||
xrandpos dw xranddata
|
|
||||||
yrandpos dw yranddata
|
|
||||||
speedrandpos dw speedranddata
|
speedrandpos dw speedranddata
|
||||||
|
|
||||||
xranddata
|
|
||||||
db 234
|
|
||||||
db 92
|
|
||||||
db 33
|
|
||||||
db 90
|
|
||||||
db 215
|
|
||||||
db 236
|
|
||||||
db 5
|
|
||||||
db 53
|
|
||||||
db 158
|
|
||||||
db 39
|
|
||||||
db 213
|
|
||||||
db 247
|
|
||||||
db 245
|
|
||||||
db 24
|
|
||||||
db 76
|
|
||||||
db 153
|
|
||||||
db 183
|
|
||||||
db 54
|
|
||||||
db 163
|
|
||||||
db 118
|
|
||||||
db 211
|
|
||||||
db 75
|
|
||||||
db 98
|
|
||||||
db 102
|
|
||||||
db 88
|
|
||||||
db 186
|
|
||||||
db 60
|
|
||||||
db 176
|
|
||||||
db 175
|
|
||||||
db 167
|
|
||||||
db 25
|
|
||||||
db 73
|
|
||||||
db 128
|
|
||||||
db 221
|
|
||||||
db 18
|
|
||||||
db 212
|
|
||||||
db 240
|
|
||||||
db 10
|
|
||||||
db 150
|
|
||||||
db 83
|
|
||||||
db 166
|
|
||||||
db 26
|
|
||||||
db 139
|
|
||||||
db 8
|
|
||||||
db 157
|
|
||||||
db 209
|
|
||||||
db 36
|
|
||||||
db 111
|
|
||||||
db 149
|
|
||||||
db 120
|
|
||||||
db 57
|
|
||||||
db 117
|
|
||||||
db 17
|
|
||||||
db 44
|
|
||||||
db 156
|
|
||||||
db 69
|
|
||||||
db 109
|
|
||||||
db 1
|
|
||||||
db 114
|
|
||||||
db 165
|
|
||||||
db 30
|
|
||||||
db 72
|
|
||||||
db 77
|
|
||||||
db 203
|
|
||||||
db 12
|
|
||||||
db 32
|
|
||||||
db 223
|
|
||||||
db 227
|
|
||||||
db 241
|
|
||||||
db 27
|
|
||||||
db 2
|
|
||||||
db 174
|
|
||||||
db 116
|
|
||||||
db 7
|
|
||||||
db 93
|
|
||||||
db 199
|
|
||||||
db 242
|
|
||||||
db 225
|
|
||||||
db 47
|
|
||||||
db 105
|
|
||||||
db 171
|
|
||||||
db 182
|
|
||||||
db 63
|
|
||||||
db 246
|
|
||||||
db 13
|
|
||||||
db 155
|
|
||||||
db 6
|
|
||||||
db 94
|
|
||||||
db 135
|
|
||||||
db 217
|
|
||||||
db 216
|
|
||||||
db 210
|
|
||||||
db 131
|
|
||||||
db 35
|
|
||||||
db 184
|
|
||||||
db 181
|
|
||||||
db 197
|
|
||||||
db 89
|
|
||||||
db 95
|
|
||||||
db 237
|
|
||||||
db 0
|
|
||||||
|
|
||||||
yranddata
|
|
||||||
db 142
|
|
||||||
db 34
|
|
||||||
db 67
|
|
||||||
db 146
|
|
||||||
db 12
|
|
||||||
db 109
|
|
||||||
db 125
|
|
||||||
db 93
|
|
||||||
db 175
|
|
||||||
db 74
|
|
||||||
db 86
|
|
||||||
db 153
|
|
||||||
db 41
|
|
||||||
db 84
|
|
||||||
db 16
|
|
||||||
db 29
|
|
||||||
db 182
|
|
||||||
db 27
|
|
||||||
db 119
|
|
||||||
db 36
|
|
||||||
db 10
|
|
||||||
db 111
|
|
||||||
db 40
|
|
||||||
db 137
|
|
||||||
db 62
|
|
||||||
db 63
|
|
||||||
db 90
|
|
||||||
db 71
|
|
||||||
db 147
|
|
||||||
db 190
|
|
||||||
db 114
|
|
||||||
db 9
|
|
||||||
db 176
|
|
||||||
db 37
|
|
||||||
db 5
|
|
||||||
db 82
|
|
||||||
db 152
|
|
||||||
db 72
|
|
||||||
db 75
|
|
||||||
db 13
|
|
||||||
db 187
|
|
||||||
db 54
|
|
||||||
db 169
|
|
||||||
db 171
|
|
||||||
db 3
|
|
||||||
db 26
|
|
||||||
db 42
|
|
||||||
db 105
|
|
||||||
db 56
|
|
||||||
db 7
|
|
||||||
db 120
|
|
||||||
db 46
|
|
||||||
db 163
|
|
||||||
db 76
|
|
||||||
db 129
|
|
||||||
db 136
|
|
||||||
db 58
|
|
||||||
db 128
|
|
||||||
db 79
|
|
||||||
db 130
|
|
||||||
db 132
|
|
||||||
db 101
|
|
||||||
db 100
|
|
||||||
db 25
|
|
||||||
db 185
|
|
||||||
db 124
|
|
||||||
db 89
|
|
||||||
db 164
|
|
||||||
db 188
|
|
||||||
db 80
|
|
||||||
db 150
|
|
||||||
db 95
|
|
||||||
db 184
|
|
||||||
db 127
|
|
||||||
db 91
|
|
||||||
db 48
|
|
||||||
db 99
|
|
||||||
db 32
|
|
||||||
db 172
|
|
||||||
db 49
|
|
||||||
db 6
|
|
||||||
db 148
|
|
||||||
db 14
|
|
||||||
db 98
|
|
||||||
db 1
|
|
||||||
db 23
|
|
||||||
db 138
|
|
||||||
db 178
|
|
||||||
db 97
|
|
||||||
db 43
|
|
||||||
db 70
|
|
||||||
db 60
|
|
||||||
db 83
|
|
||||||
db 140
|
|
||||||
db 189
|
|
||||||
db 173
|
|
||||||
db 61
|
|
||||||
db 157
|
|
||||||
db 108
|
|
||||||
db 123
|
|
||||||
db 57
|
|
||||||
db 139
|
|
||||||
db 106
|
|
||||||
db 131
|
|
||||||
db 156
|
|
||||||
db 77
|
|
||||||
db 94
|
|
||||||
db 122
|
|
||||||
db 2
|
|
||||||
db 53
|
|
||||||
db 55
|
|
||||||
db 44
|
|
||||||
db 133
|
|
||||||
db 22
|
|
||||||
db 78
|
|
||||||
db 17
|
|
||||||
db 11
|
|
||||||
db 30
|
|
||||||
db 51
|
|
||||||
db 31
|
|
||||||
db 154
|
|
||||||
db 177
|
|
||||||
db 64
|
|
||||||
db 126
|
|
||||||
db 85
|
|
||||||
db 38
|
|
||||||
db 159
|
|
||||||
db 143
|
|
||||||
db 47
|
|
||||||
db 145
|
|
||||||
db 183
|
|
||||||
db 18
|
|
||||||
db 191
|
|
||||||
db 102
|
|
||||||
db 81
|
|
||||||
db 87
|
|
||||||
db 112
|
|
||||||
db 20
|
|
||||||
db 121
|
|
||||||
db 116
|
|
||||||
db 161
|
|
||||||
db 167
|
|
||||||
db 162
|
|
||||||
db 52
|
|
||||||
db 144
|
|
||||||
db 155
|
|
||||||
db 115
|
|
||||||
db 118
|
|
||||||
db 66
|
|
||||||
db 92
|
|
||||||
db 134
|
|
||||||
db 186
|
|
||||||
db 104
|
|
||||||
db 103
|
|
||||||
db 117
|
|
||||||
db 33
|
|
||||||
db 160
|
|
||||||
db 151
|
|
||||||
db 19
|
|
||||||
db 158
|
|
||||||
db 21
|
|
||||||
db 35
|
|
||||||
db 39
|
|
||||||
db 168
|
|
||||||
db 65
|
|
||||||
db 24
|
|
||||||
db 28
|
|
||||||
db 181
|
|
||||||
db 110
|
|
||||||
db 8
|
|
||||||
db 135
|
|
||||||
db 73
|
|
||||||
db 180
|
|
||||||
db 96
|
|
||||||
db 50
|
|
||||||
db 68
|
|
||||||
db 45
|
|
||||||
db 141
|
|
||||||
db 149
|
|
||||||
db 174
|
|
||||||
db 113
|
|
||||||
db 107
|
|
||||||
db 88
|
|
||||||
db 15
|
|
||||||
db 69
|
|
||||||
db 166
|
|
||||||
db 4
|
|
||||||
db 165
|
|
||||||
db 179
|
|
||||||
db 170
|
|
||||||
db 59
|
|
||||||
db 0
|
|
||||||
|
|
||||||
speedranddata
|
speedranddata
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
db 2
|
db 2
|
||||||
db 4
|
db 4
|
||||||
db 1
|
db 1
|
||||||
db 3
|
db 3
|
||||||
db 1
|
db 1
|
||||||
db 2
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 3
|
|
||||||
db 1
|
|
||||||
db 4
|
|
||||||
db 1
|
|
||||||
db 3
|
|
||||||
db 4
|
|
||||||
db 3
|
|
||||||
db 1
|
db 1
|
||||||
db 4
|
db 4
|
||||||
db 2
|
db 2
|
||||||
db 3
|
db 3
|
||||||
db 3
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 3
|
|
||||||
db 4
|
|
||||||
db 3
|
|
||||||
db 3
|
|
||||||
db 2
|
|
||||||
db 2
|
|
||||||
db 1
|
db 1
|
||||||
db 3
|
db 3
|
||||||
|
db 4
|
||||||
|
db 2
|
||||||
|
db 1
|
||||||
|
db 2
|
||||||
|
db 3
|
||||||
|
db 2
|
||||||
|
db 4
|
||||||
|
db 1
|
||||||
|
db 3
|
||||||
|
db 4
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
|
db 4
|
||||||
|
db 2
|
||||||
db 1
|
db 1
|
||||||
db 1
|
db 1
|
||||||
db 2
|
db 2
|
||||||
db 1
|
db 2
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
db 4
|
db 4
|
||||||
db 3
|
db 3
|
||||||
db 4
|
db 4
|
||||||
|
db 4
|
||||||
|
db 4
|
||||||
|
db 4
|
||||||
|
db 3
|
||||||
|
db 1
|
||||||
|
db 2
|
||||||
|
db 1
|
||||||
|
db 2
|
||||||
|
db 4
|
||||||
|
db 3
|
||||||
|
db 4
|
||||||
|
db 2
|
||||||
|
db 1
|
||||||
|
db 4
|
||||||
|
db 1
|
||||||
|
db 4
|
||||||
|
db 4
|
||||||
|
db 3
|
||||||
db 3
|
db 3
|
||||||
db 1
|
db 1
|
||||||
db 4
|
db 4
|
||||||
db 2
|
db 2
|
||||||
db 3
|
db 3
|
||||||
db 1
|
db 1
|
||||||
|
db 2
|
||||||
db 4
|
db 4
|
||||||
|
db 4
|
||||||
|
db 4
|
||||||
|
db 4
|
||||||
|
db 1
|
||||||
db 3
|
db 3
|
||||||
db 2
|
|
||||||
db 3
|
|
||||||
db 3
|
|
||||||
db 3
|
|
||||||
db 4
|
|
||||||
db 2
|
|
||||||
db 4
|
|
||||||
db 1
|
|
||||||
db 2
|
|
||||||
db 2
|
|
||||||
db 1
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 2
|
|
||||||
db 4
|
|
||||||
db 2
|
|
||||||
db 3
|
|
||||||
db 1
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 1
|
|
||||||
db 1
|
|
||||||
db 2
|
|
||||||
db 1
|
|
||||||
db 1
|
|
||||||
db 1
|
|
||||||
db 4
|
|
||||||
db 2
|
|
||||||
db 2
|
|
||||||
db 4
|
|
||||||
db 1
|
|
||||||
db 4
|
db 4
|
||||||
db 3
|
db 3
|
||||||
db 1
|
db 1
|
||||||
|
db 1
|
||||||
db 4
|
db 4
|
||||||
db 2
|
db 2
|
||||||
db 4
|
db 4
|
||||||
|
db 4
|
||||||
db 3
|
db 3
|
||||||
|
db 4
|
||||||
|
db 1
|
||||||
db 2
|
db 2
|
||||||
db 3
|
db 3
|
||||||
db 3
|
db 3
|
||||||
db 2
|
db 2
|
||||||
db 4
|
db 1
|
||||||
|
db 1
|
||||||
|
db 3
|
||||||
|
db 3
|
||||||
|
db 1
|
||||||
db 3
|
db 3
|
||||||
db 2
|
db 2
|
||||||
db 2
|
db 4
|
||||||
db 1
|
db 1
|
||||||
|
db 1
|
||||||
|
db 1
|
||||||
|
db 3
|
||||||
db 2
|
db 2
|
||||||
db 2
|
db 2
|
||||||
db 2
|
db 2
|
||||||
db 3
|
db 3
|
||||||
db 1
|
|
||||||
db 4
|
|
||||||
db 4
|
|
||||||
db 0
|
db 0
|
||||||
|
|
Loading…
Reference in New Issue