2007/7/21 土曜日

標識を節約してみよう

Filed under: RPG — takahashi @ 17:30:28

今回は前回の標識の話にちなんだ内容にします。
前回は標識を使用しない方法をお伝えしましたが、今回は標識を節約する方法です。
画面のファンクションの標識、何も指定しないと*INKC や *INKLなど♪ABCDEFG・・・・と口ずさみながらじゃないと?わかりづらいですよね。
そこで,CF01(01),CF02(02)とファンクションと標識を関連づけると、標識が最大で24個も使われてしまいますね。
そこで、今回は標識も使用せず尚且つソースも見やすくなる方法をお伝えします。

RPG側のコーディングです。
I仕様書にてファンクションキーの定義を行います。
F01,F02...は好きな名前で定義して結構です。

RPG:
  1. I**--ファンクション戻り値定義
  2. I              X'31'                 C         F01
  3. I              X'32'                 C         F02
  4. I              X'33'                 C         F03
  5. I              X'34'                 C         F04
  6. I              X'35'                 C         F05
  7. I              X'36'                 C         F06
  8. I              X'37'                 C         F07
  9. I              X'38'                 C         F08
  10. I              X'39'                 C         F09
  11. I              X'3A'                 C         F10
  12. I              X'3B'                 C         F11
  13. I              X'3C'                 C         F12
  14. I              X'B1'                 C         F13
  15. I              X'B2'                 C         F14
  16. I              X'B3'                 C         F15
  17. I              X'B4'                 C         F16
  18. I              X'B5'                 C         F17
  19. I              X'B6'                 C         F18
  20. I              X'B7'                 C         F19
  21. I              X'B8'                 C         F20
  22. I              X'B9'                 C         F21
  23. I              X'BA'                 C         F22
  24. I              X'BB'                 C         F23
  25. I              X'BC'                 C         F24
  26. I              X'F1'                 C         ENTER
  27. I              X'F4'                 C         ROLLDN
  28. I              X'F5'                 C         ROLLUP

RPG:
  1. IWINFDS      DS
  2. I                                        1   8 W#DSID
  3. I                                      369 369W#FUNK
  4. I                                    B 370 3710W#CSL
  5. I                                      370 370 W#LIN1
  6. I                                      371 371 W#COL1
  7. I                                    B 378 3790TPRRN

F仕様書で定義しているINFDSにファンクションを定義します
369 369バイト目に任意の名前で定義します
今回はW#FUNKとして定義します

実際のファンクションの判定です。

RPG:
  1. C**-- 判定
  2. C                     SELEC
  3. C           W#FUNK    WHEQ F01
  4. C                     EXSR @D1CLR
  5. C                     EXSR @D1OFF
  6. C           W#FUNK    WHEQ F03
  7. C                     MOVEL'END'     W#CTL     P
  8. C                     MOVEL'PF03'    E#0090
  9. C           W#FUNK    WHEQ F05
  10. C                     EXSR @D1CLR
  11. C                     OTHER
  12. C                     EXSR @D1ENT
  13. C                     ENDSL

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URL

コメントをどうぞ

HTML convert time: 0.734 sec. Powered by WordPress ME

Close
E-mail It