Routines 
Prev: 29174  Up: Map  Next: 29330 
Used by the routine at 28101.


29272  LD A,(23701)  If Magic Knight's current room is not 1 (USS Pisces, 1, The Bridge)...  
29275  CP 1  ...  
29277  RET NZ  ...then return  
29278  LD A,(23700)  If the USS Pisces' current location is 20 (Gangrole)...  
29281  CP 20  ...  
29283  RET Z  ...then return  
29284  LD A,255  Store 255 at 23694 and 23696...  
29286  LD (23696),A  ...to preserve attributes already on screen...  
29289  LD (23694),A  ...  
29292  LD A,(23700)  Load the USS Pisces' current location into H and L...  
29295  LD H,A  ...so that HL points to an address in ROM (pseudorandom data)...  
29296  LD L,A  ...  
29297  LD B,50  Load B with 50 (as we are PLOTting 50 stars)  
29299  PUSH BC  Store BC (remaining number of stars to PLOT)  
29300  INC HL  Advance HL by one byte  
29301  LD A,(HL)  Load A with byte at HL  
29302  AND 63  Clear bits 6 and 7  
29304  CP 56  If this ycoordinate value is 56 or more...  
29306  JP NC,29300  ...then loop back to 29300 to get next byte value  
29309  LD B,A  Load this pseudorandom value (055) into B (ycoordinate)  
29310  INC HL  Advance HL by one byte  
29311  LD A,(HL)  Load A with byte at HL  
29312  AND 127  Clear bit 7  
29314  LD C,A  Load this xcoordinate value (0127) into C (xcoordinate)  
29315  PUSH HL  Store HL (current address in ROM)  
Stars are PLOTted as pixels using the ROM PLOT routine. Therefore, coordinates are relative to the bottomleft of the display. The xcoordinate increases towards the right of the display while the ycoordinate increases towards the top. Stars are always PLOTted ABOVE the planet rendered on the viewscreen, therefore the lowerleft bound of the rectangular area for displaying stars ("star area") under this system is (64, 56) pixels. The upperright bound is (191, 111) pixels.


29316  LD HL,14400  Load H and L with the y and xcoordinates (56 and 64, respectively) of the lowerleft of the viewscreen's "star area"  
29319  ADD HL,BC  Add B and C (pseudorandom values) to H and L respectively as offsets  
29320  PUSH HL  Transfer values from H (56111) and L (64191)...  
29321  POP BC  ...to B and C  
29322  CALL 8933  PLOT the pixel (x=C, y=B)  
29325  POP HL  Restore HL (current address in ROM)  
29326  POP BC  Restore BC (remaining number of stars to PLOT)  
29327  DJNZ 29299  Decrease remaining number of stars and loop back to 29299  
29329  RET  Return 
Prev: 29174  Up: Map  Next: 29330 