さて、久しぶりにHP Primeのシミュレータで動くプログラムを作業してみました。
少々どころか、かなり長いコードなので、HP Prime実機のキーをポツポツ叩いて打ち込むのは苦行です。
PCとかを経由して、手軽に実機へコードを送り込む方法とかあるのかな ?
当方、未だに実機を入手しておらんので、この辺りの事情を御存知の方は、お知らせ戴けると幸甚であります。
実をいいますと、HP Primeでpythonが動く、と書いた手前、pythonで動くプログラムをでっち上げようと思ったのですが、global 文が機能しない様な感触だった (古いシミュレータだから ?)ので、今回はPPLで書き下した次第。
追記 on 2022-03-11
別の所に、画像を変更したPPLコードを掲載しました。
https://hpcalc-fun.blogspot.com/2022/03/2022.html
// title : graphic example // begin : 2022-01-04 04:10:54 // EXPORT colour; // graphics print func gprint(I, J, str) BEGIN LOCAL c; D := 4; FOR X FROM 1 TO DIM(str) DO c := MID(str, X, 1) ; N := INSTRING("0123456789ABCDEF", c) ; L := colour(N) ; RECT_P(I, J, I+D, J+D, L) ; I := I+D ; END; END; // EXPORT main() BEGIN RECT(); // palette colour := {} ; colour := CONCAT(colour, RGB (32, 30, 22) ); colour := CONCAT(colour, RGB (93, 94, 86) ); colour := CONCAT(colour, RGB (51, 69, 71) ); colour := CONCAT(colour, RGB (77, 52, 30) ); colour := CONCAT(colour, RGB (111, 146, 156) ); colour := CONCAT(colour, RGB (94, 121, 131) ); colour := CONCAT(colour, RGB (173, 199, 205) ); colour := CONCAT(colour, RGB (228, 229, 222) ); colour := CONCAT(colour, RGB (163, 160, 155) ); colour := CONCAT(colour, RGB (172, 138, 110) ); colour := CONCAT(colour, RGB (153, 113, 87) ); colour := CONCAT(colour, RGB (210, 173, 158) ); colour := CONCAT(colour, RGB (200, 150, 119) ); colour := CONCAT(colour, RGB (223, 201, 180) ); colour := CONCAT(colour, RGB (98, 76, 50) ); colour := CONCAT(colour, RGB (144, 93, 56) ); // ======== graphic print gprint( 0 , 0 , "000000012324445205444467526677846777425466444541122200214444467776645000445" ) ; gprint( 0 , 4 , "000000084114445505644467226777846666405666444555122000214114667776445002465" ) ; gprint( 0 , 8 , "00000091A845444504444466524777446667405467454555122000214444777677445002445" ) ; gprint( 0 , 12 , "000000432664466525645466554777446676404476456444112202111118667776442002445" ) ; gprint( 0 , 16 , "00000012046676640544446752667784666760546664688B88BC88DB6954777776442002645" ) ; gprint( 0 , 20 , "00100012246677640564446742477744666762546768D6DB8BBBBCBDDDB8667777642002645" ) ; gprint( 0 , 24 , "0022011221666774254444664247776566666546D698DBD77DDD77DD8D78886777645002445" ) ; gprint( 0 , 28 , "00200522224677642444446742477764667767777BEE8BB77D777777DBB7644666445002465" ) ; gprint( 0 , 32 , "2332252322567764054444674267776467777777745399D777D777777DB8D68488641202645" ) ; gprint( 0 , 36 , "3E2025002E5467742244446742467784677777771B828BD7D77D7777DDD8968886684002442" ) ; gprint( 0 , 40 , "2E30220302114774226444676267776BBD77777B8123BDB67D7777777DD8589487766502645" ) ; gprint( 0 , 44 , "322312020222477425444466424777BBBDD7777B8308BBD7DDDD7777DDC9911EAD777B55445" ) ; gprint( 0 , 48 , "323212030112567422444466424777BBD77777D89EA8BDDBDDDDD7D7DB9891AA99B77768645" ) ; gprint( 0 , 52 , "2302100222242674225555468256DBBB77777777B86BBBBDDD6BDDDDB8888596D899D776645" ) ; gprint( 0 , 56 , "3222100202565464224444666058B7BBBD777777DBDBDBBDBBBBBBBB8888888D77D89877645" ) ; gprint( 0 , 60 , "E32110020E264266224554676286BBBBDBD77BDD8BBD6BD6DBB88BB88CAA888D777D8967745" ) ; gprint( 0 , 64 , "E222E0020E16826622445546B4BA8BBBBB9BBCB98BBBBBBBBB8B8B989BA195BD7777789D7D6" ) ; gprint( 0 , 68 , "3222200E0228656620445466BBAABBBBBBA9AA89BBBB6BBBD88BBBB989AA9AB7DD777DB8777" ) ; gprint( 0 , 72 , "202010020114744422445866B9ACBBBBBCAAB8B89BBBBBA8BBBBB8BCC9AA9ABDDDD7777B877" ) ; gprint( 0 , 76 , "E22210020218764422444888BCACBBBBBCABBBB8B595BB9188BBBB888A19A8BB98DD7777B8D" ) ; gprint( 0 , 80 , "E20212020E28765422444DBBBBAABBBDBBBBDBBBCA851BBAA8B8BB8C9AA9A8BAA9DDD7777DD" ) ; gprint( 0 , 84 , "2022E0000228774550448DBBBBAABBBBBBBBBBBB91B82ABB1BB8BC9C9A99199AF989D77777D" ) ; gprint( 0 , 88 , "22321002211477655245BDDBBBCCABBBBBBBBBBBB14129B8F98B8B989A9F9AAAE999DDDDD77" ) ; gprint( 0 , 92 , "222220020114676450448DDBBBCCCABDBBBBBBBB812238BBAA8B99CA999E91A1FA99B9DD677" ) ; gprint( 0 , 96 , "222EE00301247774525486DBDBBCCABBDDDBDBBBB5103BBBAAB8999CA1AAEEA11AA9C9CD8DD" ) ; gprint( 0 , 100 , "323222002229777652445DDBBBBBCBBBDBBDBDBBBA1E1B8BAA9CC999A9AAEEAE1AA9A988DDD" ) ; gprint( 0 , 104 , "212220020E156776554448BBBBDDBDDDDDBBBBBBB95AABBB998C999119A1EF1E1FA9F9988DB" ) ; gprint( 0 , 108 , "1112200522E577774446488DDDDBBDBBBBDBBBBBBCB9BCCC9C9999AEF91EE11E11AAE999CC9" ) ; gprint( 0 , 112 , "21125200022167674445466BBDDBDDDBBBBBBBBBCCCCBBB89CC99AEE19E0E1E1EFAE1A998B8" ) ; gprint( 0 , 116 , "151E12000144666654812246BDBDDBDBBBBBBBBCBCC8CCC998CAAFEEAAE3EEE11FE21A599CC" ) ; gprint( 0 , 120 , "151222000224666686DD7641CDBDDDBDBBBCCBCCB99CCB8C8CAAEE3191321EE1FEEEFAA998C" ) ; gprint( 0 , 124 , "1122E200000224686DD77777ABBBDBBBBBBBCCCC99C89C9CCAFEEE319E33E1FE1E2E11AA9C8" ) ; gprint( 0 , 128 , "21E2E2000112039DDDD7777DCCCDBBDBBBC8CC9C99C9C8CC9F133E3AA332EEE1EEEEEEAAA99" ) ; gprint( 0 , 132 , "212222200111199CDD77D77DCCBBBDDBBBBCC9C99C9C9CBAA133E3EA323EEEEEEEE1EF1A199" ) ; gprint( 0 , 136 , "E22E2E200221999B7D7D77DCBCCDBBBBBB9999AA9AA999A1E33333AF0333EEE1EEE1EFAA199" ) ; gprint( 0 , 140 , "11223200022289CD77DD77CCCCCDBBBCCCC9999C9999A12E33003FA003E22E1EEE1E211AF99" ) ; gprint( 0 , 144 , "222322200221CCDDDDDDDDDCCCCBBBDBB99A98C9A9AEE3030300FA0033E23E1EEE1E2F1F199" ) ; gprint( 0 , 148 , "32020230022ACDDDCCBBCCCACCCCCDBCCCAAAA9AAA1EF3300303F30330333113EEE3E11A19A" ) ; gprint( 0 , 152 , "022002000EABDDD9FCCACFFFCCBCBCCCCAAAF1A58AAAA133303F300330322EE3EEE22EA1F9A" ) ; gprint( 0 , 156 , "302000001B7DDDCCCCAC9FFFFCCCCCCAAAAFAF1ABAB33A1103E300303203E1332EE2E1AE19A" ) ; gprint( 0 , 160 , "00000018DDDDDDC9CFFFFFEEF33EF3FFFFEFEEEEA3193FB9F330033003333303EEE23EF1FA1" ) ; gprint( 0 , 164 , "00001BDDDDDC9CA9FFFFEEE3333333EE1FA1FFAFA1F13EFA3333333303030003E1E0EEA119A" ) ; gprint( 0 , 168 , "0E9DDD7DBCFCA9FFFFEF333FE33FF9AFAFE33333EF1E1E33E333303003030003EA10EE1EA9A" ) ; gprint( 0 , 172 , "8DD7DDCCFCFAFFFFFEE33FF33FAA9FFF3303330300003F11EE33300000000003FAE03EEAF9A" ) ; gprint( 0 , 176 , "DDCCCFCFACFFFEEFFEFFFFFFCCFFFFE303FCFFE3000000003000000000000000AAE2EE1F19F" ) ; gprint( 0 , 180 , "CFCCAACAAFFFFFFF3FFA9CCFA33F9F33F9CAAFF3300000000000000000000000FA122EF1F9A" ) ; gprint( 0 , 184 , "FCFFCFFFFEFFFFFFACAAFFFAF3FCA33ACCAAAFFF330000000000000000000000E99E2EF119A" ) ; gprint( 0 , 188 , "FFCFFFFFEFFFAFCCFFFEFCCA3FCCF3ACCAACAAFFF33000000000000000000000E98EEE11AAA" ) ; gprint( 0 , 192 , "CCFFFEF3FFFFCCFFFFACCCAFFCCF3ACC9CCAAC9BAFF300000000000000000000EFCAF3A3F9A" ) ; gprint( 0 , 196 , "FFFFFFFFFFCCFFFFACCCCCF3FC9FFCBCCCCBBDD77DBA30000000000000000000EFC9EEFEA99" ) ; // show screen and wait FREEZE; END;
2 件のコメント:
ども、あけおめです。
akatuki様のお年玉プログラムを実機で動かしました。
https://twitter.com/hangyodon1123/status/1478977470233968642?s=21
手順は、写真のみでツイッターに上げました。
ツイッターにも注意を書きましたが、プログラムをコピペした際に、
最後にゴミが付く場合があります。
私もエラーの原因がわからず、プログラムをダラダラ見ていたら
最後に意味不明な文字列が付いており、取り除くと無事に動作
しました。
確かにエラーが、構文エラーと表示されますがどの場所かの
指示があれば簡単に解決できたのに、、、
もしかして、エラー場所を探す方法がありますか?
今年こそは、akatuki様が実機を入手し、国内の高機能電卓ファンを
楽しませるワザの伝授を期待しております。
ではでは。
hangyodon 様、謹賀新年であります。
> https://twitter.com/hangyodon1123/status/1478977470233968642?s=21
> 手順は、写真のみでツイッターに上げました。
これは痛み入ります。
やはりConnective Kitを使うのね。考えちゃうよなぁ。
もっと簡単にポートできればいいんだけどねぇ ... 。
> ツイッターにも注意を書きましたが、プログラムをコピペした際に、
> 最後にゴミが付く場合があります。
> 私もエラーの原因がわからず、プログラムをダラダラ見ていたら
> 最後に意味不明な文字列が付いており、取り除くと無事に動作
> しました。
HP Prime、エラーレポートが貧弱ではあります。
言語仕様が多機能化しているのに、エラーレポートには手が回っていないかの様な ?
ハンディ機なので、致し方ない ?
> 確かにエラーが、構文エラーと表示されますがどの場所かの
> 指示があれば簡単に解決できたのに、、、
> もしかして、エラー場所を探す方法がありますか?
シミュレータでは、構文チェックを実行してエラーが検出されると、その場所へカーソルが移動する様ですが、人間の考えと電卓の考え、違う場合がありますネ。
また、PPL と XCAS python, 記述も違っていたりなど、混乱する要素がてんこ盛りであります。久しぶりにPPLのコードをいじり始めたら、そういや行末にセミコロンが要るの、すっかり忘れておりましたヨ。
> 今年こそは ... 実機を入手し、
HP Prime、値段上がっちゃっておりますネ。ウーン。色々とpython電卓があり、目移りしちゃうよ。
拙いコードばかりで申し訳ない。
実行画像を出されてしまったので、いずれpython版を、と考えはするものの、手が回りそうもありません。
やっている事は単純なので、移植してみたら面白いと思いますヨ。
コメントを投稿