ピヨピヨ向けZ/OSメインフレーム入門
メインフレーム総合
JCL関連
旧ヘラクレス
ISPF・TSO
5chスレ
COBOL
COBOL BIT操作 その1
2010年11月12日 06時55分50秒 | COBOL
<消してしまったので再UP>
第4次規格COBOL2002以降ではBIT操作できるようです。
COBOL Consortium(COBOLコンソーシアム)
3 章 ビット操作機能
<その1>
C'11110000'(8バイト)  を X'F0'(1バイト)
C'00110001'(8バイト)  を X'31'(1バイト)
にします。
<データ準備>
INPUTはEXCELで、
A1~A256に0~255を入れて、
Bn(n=1~256)に =DEC2BIN(A1,8)で作る。
  DEC2BINを使うには、2007以前のEXCELでは、
    http://okwave.jp/qa/q2495441.html
Bn(n=1~256)をコピーして、TEXTに貼り付ける。
IBM HOSTには、プライベートPO(PDS)メンバーに転送する。
FILE-CONTROL 変更する。
<サンプル ソース>
FUJITSU COBOL85使用
000010*BIT形式のキャラクタ8バイトを1バイトにする。
000020 IDENTIFICATION DIVISION.
000030 PROGRAM-ID. AAA0001.
000040 ENVIRONMENT DIVISION.
000050 INPUT-OUTPUT SECTION.
000060 FILE-CONTROL.
000070     SELECT IN-FILE    ASSIGN  TO  'TEST03.IN.DAT'.
000080     SELECT OUT-FILE   ASSIGN  TO  'TEST03.OUT.DAT'.
000090 DATA DIVISION.
000100 FILE SECTION.
000110 FD IN-FILE.
000120 01  IN-REC.
000130     05  IN-DATA                   PIC X(008).
000140     05  IN-CRLF                   PIC X(002).
000150*
000160 FD OUT-FILE.
000170 01  OUT-REC.
000180     05 OUT-DATA                   PIC X(001).
000190*
000200 WORKING-STORAGE SECTION.
000210*
000220 01  WORK-AREA.
000230     05  WORK-CHAR8.
000240         10  W-CHAR                PIC  X(001)  OCCURS 8.
000250*
000260  05  WORK-HEX                     PIC  9(004) COMP.
000270*
000280 01  HEX-CHANGE-BEFORE             PIC  9(004) COMP.
000290 01  HEX-CHG-AFT       REDEFINES   HEX-CHANGE-BEFORE.
000300     05  FILLER                    PIC  X(001).
000310     05  HEX-CHANGE-AFTER          PIC  X(001).
000320*
000330 01  END-FLG                       PIC  X(001)  VALUE '0'.
000340*
000350 01  WK-CURRENT-STA                PIC  X(021).
000351 01  WK-CURRENT-END                PIC  X(021).
000352******************************************************************
000353 PROCEDURE DIVISION.
000360 MAIN-CONTROL.
000370*
000380     MOVE  FUNCTION  CURRENT-DATE  TO  WK-CURRENT-STA.
000381     PERFORM  INIT-RTN.
000390*
000400     PERFORM  UNTIL  END-FLG  =  "1"
000410         PERFORM  MAIN-RTN
000420     END-PERFORM.
000430*
000440     PERFORM  TERM-RTN.
000450*
000451     MOVE  FUNCTION  CURRENT-DATE  TO  WK-CURRENT-END.
000452*
000453     DISPLAY  'E N D='   WK-CURRENT-END UPON SYSOUT.
000454     DISPLAY  'START='   WK-CURRENT-STA UPON SYSOUT.
000455*
000460     STOP RUN.
000470*
000480******************************************************************
000490*                                                                *
000050*--1----+----2----+----3----+----4----+----5----+----6----+----7-*
000510 INIT-RTN.
000520     OPEN  INPUT      IN-FILE.
000530     OPEN  OUTPUT     OUT-FILE.
000540*
000550     PERFORM          READ-RTN.
000560*
000570******************************************************************
000580*                                                                *
000590*--1----+----2----+----3----+----4----+----5----+----6----+----7-*
000600 MAIN-RTN.
000610*
000620     MOVE        IN-DATA         TO      WORK-CHAR8.
000630     MOVE        ZERO            TO      WORK-HEX.
000640*
000650     IF      W-CHAR(1)   =   '0'
000660     THEN
000670         CONTINUE
000680     ELSE
000690         ADD     128             TO      WORK-HEX
000700     END-IF.
000710*
000720     IF      W-CHAR(2)   =   '0'
000730     THEN
000740         CONTINUE
000750     ELSE
000760         ADD      64             TO      WORK-HEX
000770     END-IF.
000780*
000790     IF      W-CHAR(3)   =    '0'
000800     THEN
000810         CONTINUE
000820     ELSE
000830         ADD      32             TO      WORK-HEX
000840     END-IF.
000850*
000860     IF      W-CHAR(4)   =    '0'
000870     THEN
000880         CONTINUE
000890     ELSE
000900         ADD      16             TO      WORK-HEX
000910     END-IF.
000920*
000930     IF      W-CHAR(5)   =    '0'
000940     THEN
000950         CONTINUE
000960     ELSE
000970         ADD       8             TO      WORK-HEX
000980     END-IF.
000990*
001000     IF      W-CHAR(6)   =    '0'
001010     THEN
001020         CONTINUE
001030     ELSE
001040         ADD       4             TO      WORK-HEX
001050     END-IF.
001060*
001070     IF    W-CHAR(7)     =    '0'
001080     THEN
001090         CONTINUE
001100     ELSE
001110         ADD       2             TO      WORK-HEX
001120     END-IF.
001130*
001140     IF    W-CHAR(8)     =    '0'
001150     THEN
001160         CONTINUE
001170     ELSE
001180         ADD       1             TO      WORK-HEX
001190     END-IF.
001200*
001210     MOVE    WORK-HEX            TO      HEX-CHANGE-BEFORE.
001220     WRITE   OUT-REC             FROM    HEX-CHANGE-AFTER.
001230*
001240     PERFORM  READ-RTN.
001250*
001260*******************************************************************
001270*                                                                 *
001280**--1----+----2----+----3----+----4----+----5----+----6----+----7-*
001290 READ-RTN.
001300     READ     IN-FILE     AT  END
001310         MOVE     '1'             TO      END-FLG
001320     END-READ.
001330*
001340*******************************************************************
001350*                                                                 *
001360*******************************************************************
001370 TERM-RTN.
001380     CLOSE   IN-FILE
001390             OUT-FILE.
FUJITSU COBOL85は、ダウンロード終了してました。
3,4,5年?前にダウンロードして、確認していませんでした。
Today Fujitsu NetCOBOL compilers are only sold
at their full retail price, starting at $3,300 (USD)
-  a price that is set by the value delivered for business use.
This price is usually beyond the reach of
most students and academic institutions.
We regret that at this time we cannot offer
a product for student use.
とのことです。解ってません。
「有料でならありますが、企業向けお値段です。
 ごめんね。」ということでしょうか。
COBOL BIT操作 その2
2010年11月13日 03時25分43秒 | COBOL
<その2>
X'F0'(1バイト)  を  C'11110000'(8バイト) と C'F0'(2バイト)
X'31'(1バイト)  を  C'00110001'(8バイト) と C'31'(2バイト)
にします。
<データ準備>
  <その1> で実行したアウトプットを使用します
<サンプル ソース>
000010*1バイト を8バイトBITキャラクタヘ変換
000020 IDENTIFICATION DIVISION.
000030 PROGRAM-ID. TEST04.
000040 ENVIRONMENT DIVISION.
000050 INPUT-OUTPUT SECTION.
000060 FILE-CONTROL.
000070     SELECT IN-FILE     ASSIGN   TO  'TEST04.IN.DAT'.
000080     SELECT OUT1-FILE   ASSIGN   TO  'TEST04.BIT.OUT'.
000090     SELECT OUT2-FILE   ASSIGN   TO  'TEST04.HEX.OUT'.
000100 DATA DIVISION.
000110 FILE SECTION.
000120 FD  IN-FILE.
000130 01 IN-REC.
000140    05 IN-DATA                   PIC X(001).
000160*8-1----+----2----+----3----+----4----+----5----+----6----+----7-*
000170 FD OUT1-FILE.
000180 01  OUT1-REC.
000190     05  OUT1-DATA.
000191         10 OUT1-DATA-UP         PIC X(004).
000192         10 OUT1-DATA-DOWN       PIC X(004).
000200     05  OUT1-CRLF               PIC X(002).
000220*
000230 FD  OUT2-FILE.
000240 01  OUT2-REC.
000250     05 OUT2-DATA.
000251        10 OUT2-DATA-UP          PIC X(001).
000252        10 OUT2-DATA-DOWN        PIC X(001).
000260     05 OUT2-CRLF                PIC X(002).
000270*
000280 WORKING-STORAGE SECTION.
000290 01  CON-CRLF                    PIC X(002)  VALUE  X'0D0A'.
000300*
000310 01  WORK-AREA.
000320     05  WORK-HEX-UP             PIC  9(004)  COMP.
000330     05  WORK-HEX-DOWN           PIC  9(004)  COMP.
000340*
000350     05  WORK-HEX                PIC  9(004)  COMP.
000360*
000370 01  HEX-CHG-BEF.
000371     05  HEX-CHANGE-LV           PIC  X(001).
000372     05  HEX-CHANGE-BEFORE       PIC  X(001).
000380 01  HEX-CHG-AFT      REDEFINES  HEX-CHG-BEF.
000400     05  HEX-CHANGE-AFTER        PIC  9(004)  COMP.
000410*
000420 01  TBL-CHANGE-DATA.    
000430    05  FILLER                   PIC  X(004) VALUE '0000'.
000440    05  FILLER                   PIC  X(001) VALUE '0'.
000450    05  FILLER                   PIC  X(004) VALUE '0001'.
000460    05  FILLER                   PIC  X(001) VALUE '1'.
000470    05  FILLER                   PIC  X(004) VALUE '0010'.
000480    05  FILLER                   PIC  X(001) VALUE '2'.
000490    05  FILLER                   PIC  X(004) VALUE '0011'.
000500    05  FILLER                   PIC  X(001) VALUE '3'.
000510    05  FILLER                   PIC  X(004) VALUE '0100'.
000520    05  FILLER                   PIC  X(001) VALUE '4'.
000530    05  FILLER                   PIC  X(004) VALUE '0101'.
000540    05  FILLER                   PIC  X(001) VALUE '5'.
000550    05  FILLER                   PIC  X(004) VALUE '0110'.
000560    05  FILLER                   PIC  X(001) VALUE '6'.
000570    05  FILLER                   PIC  X(004) VALUE '0111'.
000580    05  FILLER                   PIC  X(001) VALUE '7'.
000590    05  FILLER                   PIC  X(004) VALUE '1000'.
000600    05  FILLER                   PIC  X(001) VALUE '8'.
000610    05  FILLER                   PIC  X(004) VALUE '1001'.
000620    05  FILLER                   PIC  X(001) VALUE '9'.
000630    05  FILLER                   PIC  X(004) VALUE '1010'.
000640    05  FILLER                   PIC  X(001) VALUE 'A'.
000650    05  FILLER                   PIC  X(004) VALUE '1011'.
000660    05  FILLER                   PIC  X(001) VALUE 'B'.
000670    05  FILLER                   PIC  X(004) VALUE '1100'.
000680    05  FILLER                   PIC  X(001) VALUE 'C'.
000690    05  FILLER                   PIC  X(004) VALUE '1101'.
000700    05  FILLER                   PIC  X(001) VALUE 'D'.
000710    05  FILLER                   PIC  X(004) VALUE '1110'.
000720    05  FILLER                   PIC  X(001) VALUE 'E'.
000730    05  FILLER                   PIC  X(004) VALUE '1111'.
000740    05  FILLER                   PIC  X(001) VALUE 'F'.
000000*
000750 01  TBL-DATA    REDEFINES       TBL-CHANGE-DATA.
000760     05  TBL-CHG     OCCURS      16 TIMES. 
000770        10  TBL-BIT-CHAR         PIC  X(004).
000780        10  TBL-HEX-CHAR         PIC  X(001).
000830*
000840 01  END-FLG                     PIC  X(001)  VALUE '0'.
000850*
000851 01  WK-CURRENT-STA              PIC  X(021).
000852 01  WK-CURRENT-END              PIC  X(021).
000853*
000860 PROCEDURE DIVISION.
000870 MAIN-CONTROL.
000880*
000890     MOVE  FUNCTION  CURRENT-DATE  TO   WK-CURRENT-STA.
000891     PERFORM         INIT-RTN.
000900*
000910     PERFORM  UNTIL  END-FLG  =  "1"
000920            PERFORM  MAIN-RTN
000930     END-PERFORM.
000940*
000950     PERFORM         TERM-RTN.
000960     MOVE   FUNCTION  CURRENT-DATE  TO   WK-CURRENT-END.
000961*
000962     DISPLAY  'E N D='   WK-CURRENT-END UPON SYSOUT.
000971     DISPLAY  'START='   WK-CURRENT-STA UPON SYSOUT.
000972     GOBACK.
000980*
000990******************************************************************
001000*                                                                *
001010*8-1----+----2----+----3----+----4----+----5----+----6----+----7-*
001020 INIT-RTN.
001030     OPEN    INPUT       IN-FILE.
001040     OPEN    OUTPUT      OUT1-FILE
001041                         OUT2-FILE.
001050*
001060     PERFORM  READ-RTN.
001070*
001080******************************************************************
001090*                                                                *
001100*8-1----+----2----+----3----+----4----+----5----+----6----+----7-*
001110 MAIN-RTN.
001120*
001130     MOVE    IN-DATA             TO      HEX-CHANGE-BEFORE.
001140     MOVE    LOW-VALUE           TO      HEX-CHANGE-LV.
001150*
001710*
001720     DIVIDE  16  INTO  HEX-CHANGE-AFTER  GIVING     WORK-HEX-UP
001721                                         REMAINDER  WORK-HEX-DOWN.
001730*
001731     MOVE     TBL-BIT-CHAR(WORK-HEX-UP + 1)   TO  OUT1-DATA-UP.
001732     MOVE     TBL-BIT-CHAR(WORK-HEX-DOWN + 1) TO  OUT1-DATA-DOWN.
001733     MOVE     CON-CRLF                        TO  OUT1-CRLF.
001734     WRITE    OUT1-REC.
001740*
001741     MOVE     TBL-HEX-CHAR(WORK-HEX-UP + 1)   TO  OUT2-DATA-UP.
001742     MOVE     TBL-HEX-CHAR(WORK-HEX-DOWN + 1) TO  OUT2-DATA-DOWN.
001743     MOVE     CON-CRLF                        TO  OUT2-CRLF.
001744     WRITE    OUT2-REC.
001746*
001750     PERFORM  READ-RTN.
001760*
001770******************************************************************
001780*                                                                *
001790*8-1----+----2----+----3----+----4----+----5----+----6----+----7-*
001800 READ-RTN.
001810     READ    IN-FILE     AT  END
001820         MOVE    '1'             TO      END-FLG
001830     END-READ.
001840*
001850******************************************************************
001860*                                                                *
001870*8-1----+----2----+----3----+----4----+----5----+----6----+----7-*
001880 TERM-RTN.
001890     CLOSE   IN-FILE
001900             OUT1-FILE
001910             OUT2-FILE.
COBOL BIT操作 その3
2010年11月20日 00時07分39秒 | COBOL
<その3>
C'F0'(2バイト)  を  X'F0'(1バイト)
C'31'(2バイト)  を  X'31'(1バイト)
にします。
000010*2バイトHEXキャラを1バイトにする。
000020 IDENTIFICATION DIVISION.
000030 PROGRAM-ID. TEST05.
000040 ENVIRONMENT DIVISION.
000050 INPUT-OUTPUT SECTION.
000060 FILE-CONTROL.
000070     SELECT IN-FILE      ASSIGN  TO  'TEST05.IN.DAT'.
000080     SELECT OUT1-FILE    ASSIGN  TO  'TEST05.OUT.DAT'.
000090 DATA    DIVISION.
000100 FILE    SECTION.
000110 FD  IN-FILE.
000120 01  IN-REC.
000130     05  IN-DATA.
000140         10 IN-DATA-UP           PIC X(001).
000150         10 IN-DATA-DOWN         PIC X(001).
000160     05 IN-DATA-CRLF             PIC X(002).
000170*
000180 FD  OUT1-FILE.
000190 01  OUT1-REC.
000200     05  OUT1-DATA               PIC X(001).
000210*
000220 WORKING-STORAGE SECTION.
000230 01  CON-CRLF                    PIC X(002)  VALUE  X'0D0A'.
000240*
000250 01  WORK-AREA.
000260     05  WORK-HEX.
000270         10  WORK-HEX-UP         PIC  X(001).
000280         10  WORK-HEX-DOWN       PIC  X(001).
000290*
000300     05  WORK-BIN                PIC  9(004)  COMP.
000310     05  WK-BIN-DATA  REDEFINES  WORK-BIN.
000320         10  FILLER              PIC  X(001).
000330         10  WK-BIN              PIC  X(001).
000340*  
000350     05  WORK-BIN-UP             PIC  9(004)  COMP.
000360     05  WORK-BIN-DOWN           PIC  9(004)  COMP.
000370*
000380 01  TBL-CHANGE-DATA.
000390     05  FILLER                  PIC  X(001) VALUE 'A'.
000400     05  FILLER                  PIC  X(004) VALUE '1010'.
000410     05  FILLER                  PIC  9(004) COMP VALUE 10.
000420     05  FILLER                  PIC  X(001) VALUE 'B'.
000430     05  FILLER                  PIC  X(004) VALUE '1011'.
000440     05  FILLER                  PIC  9(004) COMP VALUE 11.
000450     05  FILLER                  PIC  X(001) VALUE 'C'.
000460     05  FILLER                  PIC  X(004) VALUE '1100'.
000470     05  FILLER                  PIC  9(004) COMP VALUE 12.
000480     05  FILLER                  PIC  X(001) VALUE 'D'.
000490     05  FILLER                  PIC  X(004) VALUE '1101'.
000500     05  FILLER                  PIC  9(004) COMP VALUE 13.
000510     05  FILLER                  PIC  X(001) VALUE 'E'.
000520     05  FILLER                  PIC  X(004) VALUE '1110'.
000530     05  FILLER                  PIC  9(004) COMP VALUE 14.
000540     05  FILLER                  PIC  X(001) VALUE 'F'.
000550     05  FILLER                  PIC  X(004) VALUE '1111'.
000560     05  FILLER                  PIC  9(004) COMP VALUE 15.
000570 01  TBL-DATA    REDEFINES       TBL-CHANGE-DATA.
000580     05  TBL-CHG     OCCURS      6   TIMES. 
000590         10  TBL-HEX-CHAR        PIC  X(001).
000600         10  TBL-BIT-CHAR        PIC  X(004).
000610         10  TBL-BIN-DATA.
000620            15  FILLER           PIC  X(001).
000630            15  TBL-BIN          PIC  X(001).
000640*
000650 01  IDX                        PIC  9(004)  COMP.
000660*
000670 01  END-FLG                     PIC  X(001)  VALUE '0'.
000680*
000690 01  WK-CURRENT-STA              PIC  X(021).
000691 01  WK-CURRENT-END              PIC  X(021).
000692*
000693 PROCEDURE DIVISION.
000700 MAIN-CONTROL.
000710*
000720     MOVE    FUNCTION  CURRENT-DATE  TO  WK-CURRENT-STA.
000721     PERFORM         INIT-RTN.
000730*
000740     PERFORM     UNTIL   END-FLG     =   '1'
000750         PERFORM     MAIN-RTN
000760     END-PERFORM.
000770*
000780     PERFORM         TERM-RTN.
000790     MOVE    FUNCTION  CURRENT-DATE  TO  WK-CURRENT-END.
000791*
000800     DISPLAY     'E N D='    WK-CURRENT-END  UPON SYSOUT.
000801     DISPLAY     'START='    WK-CURRENT-STA  UPON SYSOUT.
000802     STOP RUN.
000810*
000820******************************************************************
000830*                                                                *
000840******************************************************************
000850 INIT-RTN.
000860     OPEN    INPUT               IN-FILE.
000870     OPEN    OUTPUT              OUT1-FILE.
000880*
000890     PERFORM     READ-RTN.
000900*
000910******************************************************************
000920*                                                                *
000930******************************************************************
000940 MAIN-RTN.
000950*
000960     MOVE        IN-DATA         TO      WORK-HEX.
000970     MOVE        ZERO            TO      WORK-BIN.
000980     MOVE        ZERO            TO      WORK-BIN-UP.
000990     MOVE        ZERO            TO      WORK-BIN-DOWN.
001000*
001010     IF  WORK-HEX-UP             IS      NUMERIC
001020         MOVE  WORK-HEX-UP       TO      WORK-BIN-UP
001030     ELSE
001040         PERFORM   VARYING  IDX  FROM    1   BY  1 
001050             UNTIL TBL-HEX-CHAR(IDX) =   WORK-HEX-UP  
001060             CONTINUE
001070         END-PERFORM
001080         MOVE      TBL-BIN(IDX)  TO      WORK-BIN-UP
001090     END-IF.
001100*
001110     IF  WORK-HEX-DOWN           IS      NUMERIC
001120         MOVE  WORK-HEX-DOWN     TO      WORK-BIN-DOWN
001130     ELSE
001140         PERFORM   VARYING  IDX  FROM   1   BY  1 
001150             UNTIL TBL-HEX-CHAR(IDX) =   WORK-HEX-DOWN  
001160             CONTINUE
001170         END-PERFORM
001180         MOVE      TBL-BIN(IDX)  TO      WORK-BIN-DOWN
001190     END-IF.
001200
001210     COMPUTE  WORK-BIN  =  ( WORK-BIN-UP *  16 ) + WORK-BIN-DOWN.
001220     WRITE    OUT1-REC           FROM    WK-BIN.
001230*
001240     PERFORM  READ-RTN.
001250*
001260******************************************************************
001270*                                                                *
001280******************************************************************
001290 READ-RTN.
001300     READ    IN-FILE     AT  END
001310         MOVE    '1'             TO      END-FLG
001320     END-READ.
001330*
001340******************************************************************
001350*                                                                *
001360******************************************************************
001370 TERM-RTN.
001380     CLOSE                       IN-FILE
001390                                 OUT1-FILE.
*******************************************************************
'Char"A"=10進'65'
   If bytWorkUp(0) < 65 Then
      'Char"0"=10進'48'を0にする    SJIS
      bytChar(intHexIdx - 1) = (bytWorkUp(0) - 48) * 16
   Else
      'Char"A"=10進'65'を10にする  SJIS
      bytChar(intHexIdx - 1) = (bytWorkUp(0) - 55) * 16
   End If
000000*
000000     IF  WORK-HEX-UP             IS      NUMERIC
000000         COMPUTE  WORK-HEX-UP    =   WORK-BIN-UP   -  48
000000     ELSE
000000         COMPUTE  WORK-HEX-UP    =   WORK-BIN-UP   -  55
000000     END-IF.
000000*
000000     IF  WORK-HEX-UP             IS      NUMERIC
000000         COMPUTE  WORK-HEX-UP    =   WORK-BIN-DOWN -  48 
000000     ELSE
000000         COMPUTE  WORK-HEX-UP    =   WORK-BIN-DOWN -  55
000000     END-IF.
000000*
000000     COMPUTE  WORK-BIN  =  ( WORK-BIN-UP *  16 ) + WORK-BIN-DOWN.
COBOL BIT操作 その4
2010年11月20日 00時58分44秒 | COBOL
<その4>
   <その1>の別法
C'11110000'(8バイト)  を  X'F0'(1バイト)
C'00110001'(8バイト)  を  X'31'(1バイト)
にします。
000010*BIT形式のキャラクタ8バイトを1バイトにする。
000020 IDENTIFICATION                  DIVISION.
000030 PROGRAM-ID.                     TEST10.
000040 ENVIRONMENT                     DIVISION.
000050 INPUT-OUTPUT SECTION.
000060 FILE-CONTROL.
000070     SELECT  IN-FILE     ASSIGN  TO  'TEST10.IN.DAT'.
000080     SELECT  OUT-FILE   ?ASSIGN  TO  'TEST10.OUT.DAT'.
000090 DATA                            DIVISION.
000100 FILE SECTION.
000110 FD  IN-FILE.
000120 01  IN-REC.
000130     05  IN-DATA.
000131         10 IN-DATA-64           PIC X(002).
000132         10 IN-DATA-16           PIC X(002).
000133         10 IN-DATA-04           PIC X(002).
000134         10 IN-DATA-01           PIC X(002).
000140     05  IN-CRLF                 PIC X(002).
000150*
000160 FD  OUT-FILE.
000170 01  OUT-REC.
000180     05  OUT-DATA                PIC X(001).
000190*
000200 WORKING-STORAGE SECTION.
000210*
000220 01  WORK-AREA.
000230     05  WORK-CHAR8.
000240         10  W-CHAR              PIC  X(001)  OCCURS 8.
000250*
000260     05  WORK-HEX                PIC  9(004)  COMP.
000270*
000280 01  HEX-CHANGE-BEFORE           PIC  9(004) COMP.
000290 01  HEX-CHG-AFT     REDEFINES   HEX-CHANGE-BEFORE.
000300     05  FILLER                  PIC  X(001).
000310     05  HEX-CHANGE-AFTER        PIC  X(001).
000320*
000330 01  END-FLG                     PIC  X(001)  VALUE '0'.
000340*
000350 01  WK-CURRENT-STA              PIC  X(021).
000351 01  WK-CURRENT-END              PIC  X(021).
000352*
000353 PROCEDURE                       DIVISION.
000360 MAIN-CONTROL.
000370*
000380     MOVE    FUNCTION    CURRENT-DATE    TO  WK-CURRENT-STA.
000381     PERFORM                     INIT-RTN.
000390*
000400     PERFORM     UNTIL   END-FLG =  "1"
000410         PERFORM                 MAIN-RTN
000420     END-PERFORM.
000430*
000440     PERFORM                     TERM-RTN.
000450*
000451     MOVE   FUNCTION     CURRENT-DATE    TO  WK-CURRENT-END.
000452*
000453     DISPLAY   'E N D='  WK-CURRENT-END  UPON  SYSOUT.
000454     DISPLAY   'START='  WK-CURRENT-STA  UPON  SYSOUT.
000455*
000460     STOP RUN.
000470*
000480******************************************************************
000490*                                                                *
000500******************************************************************
000510 INIT-RTN.
000520     OPEN    INPUT               IN-FILE.
000530     OPEN    OUTPUT              OUT-FILE.
000540*
000550     PERFORM                     READ-RTN.
000560*
000570******************************************************************
000580*                                                                *
000590******************************************************************
000600 MAIN-RTN.
000610*
000620     MOVE        IN-DATA         TO      WORK-CHAR8.
000630     MOVE        ZERO            TO      WORK-HEX.
000640*
000641*
000650     IF          IN-DATA-64      =       '00'
000660             ADD         0       TO      WORK-HEX
000670     ELSE
000690       IF        IN-DATA-64      =       '01'
000691             ADD        64       TO      WORK-HEX
000692       ELSE
000693         IF      IN-DATA-64      =       '10'
000700             ADD       128       TO      WORK-HEX
000701         ELSE
000702           IF    IN-DATA-64      =       '11'
000703             ADD       192       TO      WORK-HEX
000704           END-IF
000705         END-IF
000706       END-IF
000707     END-IF.
000710*
000711*
000712     IF          IN-DATA-16      =       '00'
000713             ADD         0       TO      WORK-HEX
000714     ELSE
000715       IF        IN-DATA-16      =       '01'
000716             ADD        16       TO      WORK-HEX
000717       ELSE
000718         IF      IN-DATA-16      =       '10'
000719             ADD        32       TO      WORK-HEX
000720         ELSE
000721           IF    IN-DATA-16      =       '11'
000722             ADD        48       TO      WORK-HEX
000723           END-IF
000724         END-IF
000725       END-IF
000726     END-IF.
000727*
000728*
000729     IF          IN-DATA-04      =       '00'
000730             ADD         0       TO      WORK-HEX
000731     ELSE
000732       IF        IN-DATA-04      =       '01'
000733             ADD         4       TO      WORK-HEX
000734       ELSE
000735         IF      IN-DATA-04      =       '10'
000736             ADD         8       TO      WORK-HEX
000737         ELSE
000738           IF    IN-DATA-04      =       '11'
000739             ADD        12       TO      WORK-HEX
000740           END-IF
000741         END-IF
000742       END-IF
000743     END-IF.
000744*
000745     IF          IN-DATA-01      =       '00'
000746             ADD         0       TO      WORK-HEX
000747     ELSE
000748       IF        IN-DATA-01      =       '01'
000749             ADD         1       TO      WORK-HEX
000750       ELSE
000751         IF      IN-DATA-01      =       '10'
000752             ADD         2       TO      WORK-HEX
000753         ELSE
000754           IF    IN-DATA-04      =       '11'
000755             ADD         3       TO      WORK-HEX
000756           END-IF
000757         END-IF
000758       END-IF
000759     END-IF.
000761*
001200*
001210     MOVE    WORK-HEX            TO      HEX-CHANGE-BEFORE.
001220     WRITE   OUT-REC             FROM    HEX-CHANGE-AFTER.
001230*
001240     PERFORM                     READ-RTN.
001250*
001260******************************************************************
001270*                                                                *
001280******************************************************************
001290 READ-RTN.
001300     READ    IN-FILE     AT  END
001310         MOVE    '1'             TO      END-FLG
001320     END-READ.
001330*
001340******************************************************************
001350*                                                                *
001360******************************************************************
001370 TERM-RTN.
001380     CLOSE                       IN-FILE
001390                                 OUT-FILE.
COBOL85でBITシフト
2011年05月08日 08時31分12秒 | COBOL
①COBOL85でBITシフト
000010 IDENTIFICATION                  DIVISION.
000020 PROGRAM-ID.                     BITSHIFT.
000030*
000040 ENVIRONMENT                     DIVISION.
000050 INPUT-OUTPUT                    SECTION.
000060 FILE-CONTROL.
000070*    SELECT      INA             ASSIGN      TO  COBIN.  
000080*    SELECT      OUT             ASSIGN      TO  COBOT.
000090*
000100 DATA                            DIVISION.
000110 FILE                            SECTION.
000120*FD  INA
000130*    LABEL       RECORD          IS  STANDARD
000140*    RECORDING   MODE            F.
000150*01  IN-REC                      PIC  X(080).
000160*
000170*FD  INA
000180*    LABEL       RECORD          IS  STANDARD
000190*    RECORDING   MODE            F.
000200*01  OUT-REC                     PIC  X(080).
000210*
000220 WORKING-STORAGE                 SECTION.
000230*
000240 01  TCOMP-A                     PIC  9(004) COMP.
000250 01  FILLER  REDEFINES           TCOMP-A.
000260     05  XBIT-00A                PIC  X(001).
000270     05  XBIT-A                  PIC  X(001).
000280*
000290 01  TCOMP-B                     PIC  9(004) COMP.
000300 01  FILLER  REDEFINES           TCOMP-B.
000310     05  XBIT-00B                PIC  X(001).
000320     05  XBIT-B                  PIC  X(001).
000330*
000340 01  TCOMP-C                     PIC  9(004) COMP.
000350 01  FILLER  REDEFINES           TCOMP-C.
000360     05  XBIT-00C                PIC  X(001).
000370     05  XBIT-C                  PIC  X(001).
000380*
000390 01  TBL-HEX.
000400     05  FILLER                  PIC  X(001)  VALUE  '0'.
000410     05  FILLER                  PIC  X(004)  VALUE  '0000'.
000420     05  FILLER                  PIC  X(001)  VALUE  '1'.
000430     05  FILLER                  PIC  X(004)  VALUE  '0001'.
000440     05  FILLER                  PIC  X(001)  VALUE  '2'.
000450     05  FILLER                  PIC  X(004)  VALUE  '0010'.
000460     05  FILLER                  PIC  X(001)  VALUE  '3'.
000470     05  FILLER                  PIC  X(004)  VALUE  '0011'.
000480     05  FILLER                  PIC  X(001)  VALUE  '4'.
000490     05  FILLER                  PIC  X(004)  VALUE  '0100'.
000500     05  FILLER                  PIC  X(001)  VALUE  '5'.
000510     05  FILLER                  PIC  X(004)  VALUE  '0101'.
000520     05  FILLER                  PIC  X(001)  VALUE  '6'.
000530     05  FILLER                  PIC  X(004)  VALUE  '0110'.
000540     05  FILLER                  PIC  X(001)  VALUE  '7'.
000550     05  FILLER                  PIC  X(004)  VALUE  '0111'.
000560     05  FILLER                  PIC  X(001)  VALUE  '8'.
000570     05  FILLER                  PIC  X(004)  VALUE  '1000'.
000580     05  FILLER                  PIC  X(001)  VALUE  '9'.
000590     05  FILLER                  PIC  X(004)  VALUE  '1001'.
000600     05  FILLER                  PIC  X(001)  VALUE  'A'.
000610     05  FILLER                  PIC  X(004)  VALUE  '1010'.
000620     05  FILLER                  PIC  X(001)  VALUE  'B'.
000630     05  FILLER                  PIC  X(004)  VALUE  '1011'.
000640     05  FILLER                  PIC  X(001)  VALUE  'C'.
000650     05  FILLER                  PIC  X(004)  VALUE  '1100'.
000660     05  FILLER                  PIC  X(001)  VALUE  'D'.
000670     05  FILLER                  PIC  X(004)  VALUE  '1101'.
000680     05  FILLER                  PIC  X(001)  VALUE  'E'.
000690     05  FILLER                  PIC  X(004)  VALUE  '1110'.
000700     05  FILLER                  PIC  X(001)  VALUE  'F'.
000710     05  FILLER                  PIC  X(004)  VALUE  '1111'.
000720*
000730 01  TBL-HEX-R                   REDEFINES    TBL-HEX.
000740     05  TBLHEX      OCCURS      16  TIMES.
000750         10  T-HEX               PIC  X(001).
000760         10  T-BIT               PIC  X(004).
000770*
000780 01  CONV-BIT.
000790     05  CNV-BIT-LV              PIC  X(001).
000800     05  CNV-BIT-CHR             PIC  X(001).
000810 01  CONV-BIT-R                  REDEFINES   CONV-BIT.
000820     05  CNV-BIN                 PIC  9(004) COMP.
000830*
000840 01  IX-UP                       PIC  9(004) COMP.
000850 01  IX-DW                       PIC  9(004) COMP.
000860*
000870 01  WK-BIT-EDIT.
000880     05  WK-BIT-UP               PIC  X(004).
000890     05  WK-BIT-DW               PIC  X(004).
000900*
000910 01  WK-HEX-EDIT.
000920     05  WK-HEX-UP               PIC  X(001).
000930     05  WK-HEX-DW               PIC  X(001).
000940*
000950*01  EOF-FLG                     PIC  X(001)  VALUE '0'.
000960****************************************************************
000970*                                                              *
000980****************************************************************
000990 PROCEDURE                       DIVISION.
001000*    OPEN    INPUT               INA.
001010*            OUTPUT              OUT.
001020*
001030*****MOVE    255                 TO      TCOMP-A.
001040*            ↓ここにSET
001050     MOVE    X'FF'               TO      XBIT-A.
001060     MOVE    LOW-VALUE           TO      XBIT-00A.
001070*
001080     MOVE    XBIT-A              TO      CNV-BIT-CHR.
001090     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001100*
001110     DISPLAY     'XBIT-A="'      XBIT-A  '"'
001120                                 UPON    SYSOUT.
001130     DISPLAY     'XBIT-A="'      WK-HEX-EDIT '-' WK-BIT-EDIT
001140                                 UPON    SYSOUT.
001150*
001160*左シフト
001170     COMPUTE     TCOMP-B =   TCOMP-A     *   16.
001180     MOVE    X'00'               TO      XBIT-00B.
001190     MOVE    XBIT-B              TO      CNV-BIT-CHR.
001200     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001210*
001220     DISPLAY     'XBIT-B="'      XBIT-B  '"'
001230                                 UPON    SYSOUT.
001240     DISPLAY     'XBIT-B="'      WK-HEX-EDIT '-' WK-BIT-EDIT
001250                                 UPON    SYSOUT.
001260*
001270*右シフト
001280     COMPUTE     TCOMP-C =   TCOMP-A     /   16.
001290     MOVE    X'00'               TO      XBIT-00C.
001300     MOVE    XBIT-C              TO      CNV-BIT-CHR.
001310     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001320*
001330     DISPLAY     'XBIT-C="'      XBIT-C  '"'
001340                                 UPON    SYSOUT.
001350     DISPLAY     'XBIT-C="'      WK-HEX-EDIT '-' WK-BIT-EDIT
001360                                 UPON    SYSOUT.
001370*
001380*    CLOSE                      INA.
001390*                               OUT.
001400     GOBACK
001410****************************************************************
001420*                                                              *
001430****************************************************************
001440 BIN2HEX-SUB.
001450     MOVE        LOW-VALUE       TO      CNV-BIT-LV.
001460     MOVE        ZERO            TO      IX-UP.
001470     MOVE        ZERO            TO      IX-DW.
001480*
001490     DIVIDE      16              INTO    CNV-BIN
001500                                 GIVING      IX-UP
001510                                 REMAINDER   IX-DW
001520*
001530     MOVE    T-BIT(IX-UP + 1)    TO      WK-BIT-UP.
001540     MOVE    T-BIT(IX-DW + 1)    TO      WK-BIT-DW.
001550*
001560     MOVE    T-HEX(IX-UP + 1)    TO      WK-HEX-UP.
001570     MOVE    T-HEX(IX-DW + 1)    TO      WK-HEX-DW.
001580*
001590 BIN2HEX-SUB-EXT.
001600     EXIT.
001610
②シフトして空いた所、にBITを立ててみる
  (件数は、大体X'00'ですが。)
000990 PROCEDURE                       DIVISION.
001000*
001010*右2bitシフトして空いた上位bitに
001020*例えばアクセス件数
001030*      本日 X'00'…50件以下               =000
001040*      本日 X'01'…50件超~100件以下      =064
001050*      本日 X'10'…100件件超~500件以下   =128
001060*      本日 X'11'…500件超                =192
001070* を立てるとする。
001080     MOVE        255             TO      TCOMP-A.
001090     COMPUTE     TCOMP-C =   TCOMP-A     /   4.
001100     COMPUTE     TCOMP-C =   TCOMP-C     +   0
001110     MOVE    X'00'               TO      XBIT-00C.
001120     MOVE    XBIT-C              TO      CNV-BIT-CHR.
001130     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001140*
001150     DISPLAY     '* 本日 X'00'…50件以下               =000'
001160                                 UPON    SYSOUT.
001170     DISPLAY     'XBIT-C='       XBIT-C  '"'
001180                                 UPON    SYSOUT.
001190     DISPLAY     'XBIT-C='       WK-HEX-EDIT '-' WK-BIT-EDIT
001200                                 UPON    SYSOUT.
001210*
001220****************************************************************
001230     COMPUTE     TCOMP-C =   TCOMP-A     /   4.
001240     COMPUTE     TCOMP-C =   TCOMP-C     +  64.
001250     MOVE    X'00'               TO      XBIT-00C.
001260     MOVE    XBIT-C              TO      CNV-BIT-CHR.
001270     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001280*
001290     DISPLAY     '* 本日 X'01'…50件超~100件以下      =064'
001300                                 UPON    SYSOUT.
001310     DISPLAY     'XBIT-C='       XBIT-C  '"'
001320                                 UPON    SYSOUT.
001330     DISPLAY     'XBIT-C='       WK-HEX-EDIT '-' WK-BIT-EDIT
001340                                 UPON    SYSOUT.
001350*
001360****************************************************************
001370     COMPUTE     TCOMP-C =   TCOMP-A     /   4.
001380     COMPUTE     TCOMP-C =   TCOMP-C     + 128.
001390     MOVE    X'00'               TO      XBIT-00C.
001400     MOVE    XBIT-C              TO      CNV-BIT-CHR.
001410     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001420*
001430     DISPLAY     '* 本日 X'10'…100件件超~500件以下   =128'
001440                                 UPON    SYSOUT.
001450     DISPLAY     'XBIT-C='       XBIT-C  '"'
001460                                 UPON    SYSOUT.
001470     DISPLAY     'XBIT-C='       WK-HEX-EDIT '-' WK-BIT-EDIT
001480                                 UPON    SYSOUT.
001490****************************************************************
001500     COMPUTE     TCOMP-C =   TCOMP-A     /   4.
001510     COMPUTE     TCOMP-C =   TCOMP-C     + 192.
001520     MOVE    X'00'               TO      XBIT-00C.
001530     MOVE    XBIT-C              TO      CNV-BIT-CHR.
001540     PERFORM     BIN2HEX-SUB     THRU    BIN2HEX-SUB-EXT.
001550*
001560     DISPLAY     '* 本日 X'11'…500件超                =192'
001570                                 UPON    SYSOUT.
001580     DISPLAY     'XBIT-C='       XBIT-C  '"'
001590                                 UPON    SYSOUT.
001600     DISPLAY     'XBIT-C='       WK-HEX-EDIT '-' WK-BIT-EDIT
001610                                 UPON    SYSOUT.
001620*
001630     GOBACK.
<2011/05/18 追記 START>
左6シフト *  64
左7シフト * 128
は内容が壊れます。
 COMPだと
 計算で範囲を超えても、桁数に収めて再格納します。
 左5シフト *  32
         255 × 032 =  8160 は4桁SAFE
 左6シフト *  64
         255 × 064 = 16320 は5桁OUT
   16320
        00111111-11000000 だが
    6320で格納される
        00011000-10110000 =>9(04) COMP
        内容が壊れます。
 左7シフト * 128
        255 × 128 = 32640 は5桁OUT
   32640
        1111111-10000000 だが
    2640で格納
        00001010-01010000 =>9(04) COMP
        内容が壊れます。
<END>
COBOL ORD関数を使ってみた。
2012年06月24日 05時32分07秒 | COBOL
COBOL ORD関数を使ってみた。
0スタートではなく,1スタート
EXCEL =CODE("A") は、65だが、COBOL ORD関数では、66。
使用することもないと思う。初めて使いました。
EBCDIC EBCDIKでは、結果が変わると思います。
FUJITSU COBOL85使用。
000010 IDENTIFICATION           DIVISION.
000020 PROGRAM-ID.              CNT001.
000030*
000040 ENVIRONMENT                     DIVISION.
000050 CONFIGURATION                   SECTION.
000060 SOURCE-COMPUTER.                COBOL85.
000070 OBJECT-COMPUTER.                COBOL85.
000080*
000090 INPUT-OUTPUT                    SECTION. 
000100  FILE-CONTROL.                
000110*    SELECT  IN01     ASSIGN  TO  "E:\COBDAT\CNT0091.TXT".
000120     SELECT  OUT      ASSIGN  TO  "C:\FSC\TEST\TESTORD\TESTORD.TXT".
000130*
000140 DATA                            DIVISION.
000150 FILE                            SECTION.
000160*FD  IN01.
000170* 01  IN01-AREA.
000180*     05  IN01-REC                PIC  X(01).
000190*
000200 FD  OUT.
000210*     BLOCK      CONTAINS  0      RECORD  
000220*     LABEL      RECORD   IS      STANDARD.
000230 01  OUT-AREA.
000240     05  OUT-QT1                  PIC  X(01).
000250     05  OUT-DATA                 PIC  X(01).
000260     05  OUT-QT2                  PIC  X(01).
000270     05  OUT-EQ                   PIC  X(01).
000280     05  OUT-AAA                  PIC  9(04).
000290     05  OUT-CRLF                 PIC  X(02).
000300*
000310  WORKING-STORAGE SECTION.
000320  01  DATA-A.
000330      05  DATA-9                  PIC  9(004)  COMP
000340                                  OCCURS 256 TIMES.
000350  01  DATA-B      REDEFINES       DATA-A.
000360      05  DATA-CHAR               OCCURS 256 TIMES.
000370          10  DATA-HIG            PIC  X(001).    
000380          10  DATA-LOW            PIC  X(001).
000390*
000400  01  CNT1                        PIC  9(005) VALUE 255.
000410  01  CNT2                        PIC S9(004) COMP-3.
000420  01  CNT3                        PIC S9(004) COMP.
000430*
000440  01  IX                          PIC  9(004) COMP.
000450  01  CNTA                        PIC  9(004) COMP.
000460  01  DISP-AAA                    PIC  9(004).             
000470******************************************************************
000480  PROCEDURE               DIVISION.
000490
000500     DISPLAY      CNT1.
000510     MOVE         CNT1            TO  CNT2 CNT3.
000520     DISPLAY      CNT2.
000530     DISPLAY      CNT3.
000540*
000550     COMPUTE DISP-AAA  =  FUNCTION ORD ("A")
000560     DISPLAY      DISP-AAA        UPON  SYSOUT.
000570*
000580     COMPUTE DISP-AAA  =  FUNCTION ORD-MAX (3.4 5 6.2 9)
000590     DISPLAY      DISP-AAA.
000600*
000610*     OPEN         INPUT           IN01
000620     OPEN         OUTPUT          OUT.
000630*
000640     MOVE         ZERO            TO  CNTA.
000650     PERFORM      VARYING  IX  FROM  1  BY  1
000660                               UNTIL IX  >  256
000670         MOVE     CNTA            TO  DATA-9(IX)
000680         ADD      1               TO  CNTA
000690     END-PERFORM.
000700*
000710     PERFORM      VARYING  IX  FROM  1  BY  1
000720                               UNTIL IX > 256
000730         COMPUTE  DISP-AAA  =  FUNCTION ORD(DATA-LOW(IX))
000740*         DISPLAY  '"' DATA-LOW(IX) '="' DISP-AAA
000750*                                  UPON   SYSOUT
000760         MOVE     SPACE           TO  OUT-AREA
000770         MOVE     '"'             TO  OUT-QT1
000780         MOVE     DATA-LOW(IX)    TO  OUT-DATA
000790         MOVE     '"'             TO  OUT-QT2
000800         MOVE     '='             TO  OUT-EQ
000810         MOVE     DISP-AAA        TO  OUT-AAA
000820         MOVE     X'0D0A'         TO  OUT-CRLF
000830         WRITE                    OUT-AREA
000840     END-PERFORM.
000850*
000860*     CLOSE                        IN01
000870     CLOSE                        OUT.
000880* 
000890     GOBACK.
" "=0001
" "=0002
""=0003
" "=0033
"!"=0034
"""=0035
"#"=0036
"$"=0037
"%"=0038
"&"=0039
"'"=0040
"("=0041
")"=0042
"*"=0043
"+"=0044
","=0045
"-"=0046
"."=0047
"/"=0048
"0"=0049
"1"=0050
"2"=0051
"3"=0052
"4"=0053
"5"=0054
"6"=0055
"7"=0056
"8"=0057
"9"=0058
":"=0059
";"=0060
"<"=0061
"="=0062
">"=0063
"?"=0064
"@"=0065
"A"=0066
"B"=0067
"C"=0068
"D"=0069
"E"=0070
"F"=0071
"G"=0072
"H"=0073
"I"=0074
"J"=0075
"K"=0076
"L"=0077
"M"=0078
"N"=0079
"O"=0080
"P"=0081
"Q"=0082
"R"=0083
"S"=0084
"T"=0085
"U"=0086
"V"=0087
"W"=0088
"X"=0089
"Y"=0090
"Z"=0091
"["=0092
"\"=0093
"]"=0094
"^"=0095
"_"=0096
"`"=0097
"a"=0098
"b"=0099
"c"=0100
"d"=0101
"e"=0102
"f"=0103
"g"=0104
"h"=0105
"i"=0106
"j"=0107
"k"=0108
"l"=0109
"m"=0110
"n"=0111
"o"=0112
"p"=0113
"q"=0114
"r"=0115
"s"=0116
"t"=0117
"u"=0118
"v"=0119
"w"=0120
"x"=0121
"y"=0122
"z"=0123
"{"=0124
"|"=0125
"}"=0126
"~"=0127
""=0128
" "=0161
"。"=0162
"「"=0163
"」"=0164
"、"=0165
"・"=0166
"ヲ"=0167
"ァ"=0168
"ィ"=0169
"ゥ"=0170
"ェ"=0171
"ォ"=0172
"ャ"=0173
"ュ"=0174
"ョ"=0175
"ッ"=0176
"ー"=0177
"ア"=0178
"イ"=0179
"ウ"=0180
"エ"=0181
"オ"=0182
"カ"=0183
"キ"=0184
"ク"=0185
"ケ"=0186
"コ"=0187
"サ"=0188
"シ"=0189
"ス"=0190
"セ"=0191
"ソ"=0192
"タ"=0193
"チ"=0194
"ツ"=0195
"テ"=0196
"ト"=0197
"ナ"=0198
"ニ"=0199
"ヌ"=0200
"ネ"=0201
"ノ"=0202
"ハ"=0203
"ヒ"=0204
"フ"=0205
"ヘ"=0206
"ホ"=0207
"マ"=0208
"ミ"=0209
"ム"=0210
"メ"=0211
"モ"=0212
"ヤ"=0213
"ユ"=0214
"ヨ"=0215
"ラ"=0216
"リ"=0217
"ル"=0218
"レ"=0219
"ロ"=0220
"ワ"=0221
"ン"=0222
"゛"=0223
"゜"=0224
" "=0225
" "=0255
" "=0256
IBM 汎用機 ASM(アセンブラ)入門書 入手方法
2010年11月03日 10時52分51秒 | 汎用機
IBM 汎用機 ASM(アセンブラ)入門書 入手方法
<20140711sta>
多分IBMの関連会社 IBM製品系の研修機関だろう
1. 日本IBMのホームページへ行く
2.「サポート&ダウンロード」 の「研修/トレーニング」を選択
3.「研修コースの検索」を選択
4.「コースのクイック検索」にてキーワード「アセンブラ」を入力し検索
2010年11月3日10:50時点
(24010)10,500円
アセンブラー言語 −自習方式
(24230)10,500円
OS/VSアセンブラー・プログラミング −自習方式
(24341)7,875円
アセンブラー使用者のためのVSAMプログラミング−自習方式
(6HA10)115,500円
Assemblerの基礎 −CD-ROMコース
(DA050) 値段? 実習
アセンブラー言語 演習
(ES260)141,750円
SMP/E for z/OS ワークショップ
(ZPC75)103,950円
Assemblerの基礎 −CD-ROMコース
.
IBM社員 IBM子関連会社社員に買わせる。コピる。
最終更新:2025年10月28日 21:58