2020年3月14日土曜日

今日はホワイトデーなので (?)、久しぶりにHP Primeのコード

まずは、こちらのtweetを御参照

cf,
https://twitter.com/RR_Inyo/status/1217489174128758784

z' = cos(Z) の繰り返しで、こんなグラフィクスが描けるそうで、HP PRIMEでもやってみましたヨ。
まだ、実機を持っていないので、今回もSIMで作業ですが、以下のコードを御利用下さい。

// title : iter_cos.ppl - iterative complex cosine graph for HP Prime
// begin : 2020-02-16 20:37:33 

//
pixVal(z, c)
BEGIN
  LOCAL  cnt := 0;

  //  この判断式がミソです
  //  Mandelobrot, julia setでは、abs(z)<4 .0="" br="">  //  このグラフィクスのバヤイはこんな風でした
  WHILE (ABS(z) <= 50) AND (cnt < 20) DO
    // modify this form to enjoy
    z := COS(z);
    cnt := cnt+1;
  END;

  //  color value : 0 for black, 16777215 for white
  RETURN RGB(1*cnt/20*255, 0.75*cnt/20*255, 0.25*cnt/20*255);

END;

EXPORT itercos()
BEGIN
  // Clean the screen (G0):RECT();

  LOCAL dx, dy, z, xp, yp; 
  LOCAL xmin, xmax, ymin, ymax;
  LOCAL pixStat;

  //  screen range
  xmin := -10;
  xmax :=  10;
  ymin :=  -5;
  ymax :=   5;

  dx := (xmax-xmin)/320;
  dy := (ymax-ymin)/240;

  // we loop over each pixel
  // Of the HP Ptime screen 
  FOR yp FROM 0 TO 239 DO
    FOR xp FROM 0 TO 319 DO
      z := (xmin+xp*dx, ymax-yp*dy);
      pixStat := pixVal(z, Z0);
      PIXON_P(xp, yp, pixStat);

    END;
  END;

  //  key wait loop
  REPEAT UNTIL GETKEY() == -1;
  FREEZE;

END;



Numworks, mandelbrotのコードを改変したとの事で、単純に式を置き換えたのですが、それだけでは、こうしたグラフィクスにはなりませんでした。
色々といじくり回し、最終的に繰り返しの判断部分をいじる事で、Tweetの様なグラフィクスを得た次第。

最近、HP Prime G2の価格が大分下落してきております。

cf.
https://www.amazon.co.jp/gp/offer-listing/B07HF6RXGG/ref=dp_olp_new?ie=UTF8&condition=new

G1との価格差も狭まってきました。Sentaro様曰く、G2は動作軽快でメモリ増量。ウーム。

一方、G2は、新しいファームがあるそうです。

cf. HP Prime Beta Software
https://www.hpcalc.org/prime/beta/

ハードウェアの違いがあるので、ファームも更新されたらしい。

そういや、こうしたコードを挙げておきながら、HP Prime実機への転送方式、気にした事がありませんでした。どなたか、ご教示ただけると幸いです。やはり、HP Conn-Kitしかないのかなァ ?