01-31-2010, 05:49 AM
Okay, this one is pretty small. It crashes.
IF I change the last line to:
It doesn't crash. What's the problem with CHR$(uByte) suddenly?
Can anyone else replicate this?
All I was trying to do was put in a nice shiny new random number generator...
Code:
FUNCTION RAND () as uInteger : REM Code by Jon Ritman
random: REM add 46 bytes to this location to hit the store "Lion"
asm
RANDOM: LD HL,(SEED+2)
LD D,L
ADD HL,HL
ADD HL,HL
LD C,H
LD HL,(SEED)
LD B,H
RL B
LD E,H
RL E
RL D
ADD HL,BC
LD (SEED),HL
LD HL,(SEED+2)
ADC HL,DE
RES 7,H
LD (SEED+2),HL
JP M,RANDOM3
LD HL,SEED
RANDOM2: INC (HL)
INC HL
JR Z,RANDOM2
RANDOM3: LD HL,(SEED)
RET
SEED: DB "Lion"
end asm
END FUNCTION
CLS
DIM a as uInteger
let a=@random
PRINT a
let a=a+46
PRINT a
DIM n as uInteger
DIM result as uByte
FOR n=a to a+4
LET result=peek n
print n;"=";result;"=";CHR$ (result)
next n
IF I change the last line to:
Code:
print n;"=";result;"=";CHR$ (76)
It doesn't crash. What's the problem with CHR$(uByte) suddenly?
Can anyone else replicate this?
All I was trying to do was put in a nice shiny new random number generator...