*---------------------------------------------------------------- * Subroutine: GetRandom * Arguments: d1 - low (0-255) * d2 - high (0-255) * Returns: d0 - pseudorandom value between low and high * Alters: d0 *---------------------------------------------------------------- GetRandom *save registers movem.l d3/a0,-(sp) *num values in d3 move.l d2,d3 sub.l d1,d3 addq #1,d3 *get the next random number move.l #random,a0 move.l rIndex,d0 addq #1,d0 and.w #$ff,d0 *limit index to 0-255 move.l d0,rIndex move.b (a0,d0),d0 and.l #$ff,d0 *get rand() % numVals divu d3,d0 swap d0 and.l #$ffff,d0 *add low end of range add.l d1,d0 *restore registers movem.l (sp)+,d3/a0 rts org $2000 rIndex dc.l 0 random dc.b $9f,$d2,$e6,$e7,$70,$db,$11,$63,$6b,$37,$99,$98,$30,$9c,$d9,$35 dc.b $65,$af,$56,$ee,$b1,$00,$fd,$c7,$61,$48,$df,$45,$2e,$41,$6d,$9b dc.b $13,$40,$d8,$fa,$91,$02,$29,$e0,$cb,$5d,$28,$fb,$2f,$77,$ea,$f9 dc.b $7e,$92,$5b,$75,$b5,$fc,$ae,$a2,$71,$cc,$a9,$3f,$7f,$7d,$ad,$7c dc.b $73,$a5,$f8,$03,$9e,$25,$f6,$e8,$4d,$33,$b3,$44,$aa,$26,$08,$6e dc.b $82,$97,$96,$19,$c8,$b4,$ba,$d3,$1f,$d0,$f5,$06,$54,$86,$49,$e2 dc.b $69,$43,$0b,$b0,$f1,$83,$a8,$9d,$38,$42,$ef,$e4,$74,$12,$20,$a0 dc.b $55,$01,$66,$23,$3d,$51,$c0,$79,$10,$de,$eb,$d5,$09,$8e,$5e,$67 dc.b $4a,$7a,$3e,$4b,$68,$8d,$e9,$62,$1b,$dd,$da,$bb,$53,$22,$3c,$b6 dc.b $ff,$81,$24,$8b,$d4,$6f,$d7,$9a,$d6,$21,$f4,$0a,$b2,$bc,$a7,$36 dc.b $34,$64,$c5,$a6,$4e,$b9,$f3,$0e,$f0,$3b,$cd,$0d,$17,$ec,$1a,$8a dc.b $e3,$16,$93,$05,$c9,$14,$c1,$cf,$52,$2c,$1e,$bf,$88,$27,$1d,$f7 dc.b $5c,$ac,$ab,$3a,$bd,$a1,$f2,$04,$e5,$2d,$e1,$c2,$15,$fe,$8c,$6a dc.b $2b,$84,$1c,$d1,$47,$c6,$58,$c3,$0f,$ce,$5f,$90,$8f,$76,$60,$0c dc.b $94,$2a,$6c,$89,$39,$46,$18,$95,$7b,$dc,$b7,$72,$78,$5a,$57,$ca dc.b $4f,$a4,$59,$07,$32,$c4,$ed,$b8,$50,$85,$a3,$31,$4c,$87,$80,$be