ENTERPRISE KLUB
2019. május 25., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: random number generator: guru z80 request (Read 719 times)

Offline g0blinish

  • EP fan
  • *
  • Posts: 110
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 46.0.2490.86 Chrome 46.0.2490.86
    • View Profile
random number generator: guru z80 request
« on: 2015.December.01. 18:21:31 »
ok, here is routine:

Code: [Select]
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: dw $E5,0
one thing what i am not understand: why JP M,.. ? what z80 opcode affects at flag S?

Offline BruceTanner

  • EP user
  • *
  • Posts: 482
  • Country: gb
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Chrome 46.0.2490.86 Chrome 46.0.2490.86
    • View Profile
Re: random number generator: guru z80 request
« Reply #1 on: 2015.December.01. 19:28:24 »
ok, here is routine:

Code: [Select]
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: dw $E5,0
one thing what i am not understand: why JP M,.. ? what z80 opcode affects at flag S?
It is the ADC HL,DE that is 3 instructions further back that last set the sign flag.