日立MB-S1に関する情報

メモリ空間1
ルーチン番号$21

機能

実数を文字列に変換します。

解説

FACCに格納されている実数データを、AccAに格納されたフォーマットに従って文字列に変換し、その結果を数値・文字列変換作業用バッファに格納します。
なお、変換前のFACCの内容は破壊されます。
数値・文字列変換作業用バッファの先頭アドレスは、システム・ワーク・エリア内のPFBUF($F014)に格納されています。

入力情報

  • AccA:
書式コード編集書式書式例
00書式指定なし
80"#"と".""###.##"
81"^^^^""#.###^^^^"
84"##…#-""###.##-"
88"+##…#""+####"
8C"##…#+""####.+"
A0"**""**###"
B0"**\""**\##"
C0",""###,"
  • AccB:
D7D6D5D4D3D2D1D0
整数部桁数小数部桁数
たとえば"###.##"の場合
###.##
整数部桁数=3小数部桁数=3

出力情報

  • X:数値・文字列変換作業用バッファ内の、変換後の文字列の先頭アドレス

サンプル・プログラム

内容

123456789のASCII文字列を、"123,456,789"の形に変換して、画面に表示します。
 0                          ORG  $C000
 1           C000   UFOUT   EQU  *          --SAMPLE OF "UFOUT" ROUTINE--
 2 C000   20 07             BRA  EXEC
 3           EF9E   FILNUM  EQU  $EF9E      FILE NUMBER VEC.
 4           F014   PFBUF   EQU  $F014
 5 C002      31     MSG     FCC  /123456789 --> /
 6 C003      32
 7 C004      33
 8 C005      34
 9 C006      35
10 C007      36
11 C008      37
12 C009      38
13 C00A      39
14 C00B      20
15 C00C      2D
16 C00D      2D
17 C00E      3E
18 C00F      20
19 C010      00             FCB  $00        MESSAGE END CODE
20 C011             EXEC    EQU  *          --- PROGRAM START ---
21 C011   30 8CEE           LEAX MSGA,PCR   X:TOP ADDR OF MESSAGE AREA
22 C014   34 10             PSHS X
23 C016   86 0F             LDA  #$0F       A:MAP NO (ON MESSAGE)
24 C018   5F                CLRB
25 C019   F7 EF9E           STB  FILNUM     FILNUM: 0=DISPLAY
26 C01C 103F                SWI2            CALL "STOUT2" ROUTINE
27 C01E      41             FCB  $41
28 C01F      39             FCB  $39
29                  *                       ---- BUFFER <--- DATA ----
30 C020   35 10             PULS X          X:TOP ADDR OF MESSAGE
31 C022 10BE F014           LDY  PFBUF      Y:PFBUF VEC.
32 C026   C6 09             LDB  #9         B:LENGTH OF ARGUEMENT
33 C028   34 04             PSHS B
34 C02A   A6 80     LOOP    LDA  ,X+
35 C02C   A7 A0             STA  ,Y+
36 C02E   5A                DECB
37 C02F   26 F9             BNE  LOOP
38                  *                       ---- FACC <--- DATA(DOUBLE) ----
39 C031   35 04             PULS B          B:LENGTH OF ARGUEMENT
40 C033 103F                SWI2            CALL "UVAL1" ROUTINE
41 C035      41             FCB  $41
42 C036      21             FCB  $21
43                  *                       ---- FACC DATA USING ----
44 C037   86 C0             LDA  #$C0       "#,"
45 C039   C6 C0             LDB  #$C0       "###,###,###"
46 C03B 103F                SWI2            CALL "UFOUT" ROUTINE
47 C03D      41             FCB  $41
48 C03E      22             FCB  $22
49                  *                       ---- DATA DISPLAY ----
50 C03F   86 0F             LDA  #$0F       A:MAP NO
52 C041 103F                SWI2            CALL "STOUT2" ROUTINE
53 C043      41             FCB  $41
54 C044      39             FCB  $39
55 C045   39                RTS
56                          END

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます