プログラムの書式
プログラムの書式
HELP から プログラムが #C00以降に保存されることがわかる
プログラムは どのような形式で保存されるのだろうか
そこで プログラムの保存書式を調べるプログラムをつくる
10 'ABCD
20 '1234
30 FOR J=0 TO 21
40 D=PEEK(#C00+J)
45 PRINT HEX$(#C000+J);" ";
50 PRINT D;" ";
60 IF D<10 THEN ?" ";
70 IF D<32 THEN D=32
80 PRINT CHR$(D)
90 NEXT
実行結果

プログラムの実行結果
C000 10 行番号(2進法 下8桁)
C001 0 行番号( 2進法 上8桁)
C002 6 文字数
C003 39 '
C004 65 A
C005 66 B
C006 67 C
C007 68 D
C008 0 文字数調整
C009 0 行末
C00A 20 行番号( 2進法 下8桁)
C00B 0 行番号( 2進法 上8桁)
C00C 6 文字数
C00D 39 '
C00E 49 1
C00F 50 2
C010 51 3
C011 52 4
C012 0 文字数調整
C013 0 行末
C014 30 行番号( 2進法 下8桁)
C015 0 行番号( 2進法 上8桁)
行番号を変えてみると
255 'ABCD
265 '1234
275 FOR J=0 TO 21
285 D=PEEK(#C00+J)
295 PRINT HEX$(#C000+J);" ";
305 PRINT D;" ";
315 IF D<10 THEN ?" ";
325 IF D<32 THEN D=32
335 PRINT CHR$(D)
345 NEXT

プログラムの実行結果
C000 255 行番号(2進法 下8桁)
C001 0 行番号(2進法 上8桁)
C002 6
C003 39 '
C004 65 A
C005 66 B
C006 67 C
C007 68 D
C008 0
C009 0
C00A 9 行番号(2進法 下8桁)
C00B 1 行番号( 2進法 上8桁)
C00C 6
C00D 39 '
C00E 49 1
C00F 50 2
C010 51 3
C011 52 4
C012 0
C013 0
C014 19 行番号(2進法 下8桁)
C015 1 行番号(2進法 上8桁)
行番号255が 255 , 0 なのは 理解できる
行番号265が 9 , 1 なのは どういうことだろうか
PRINT BIN$(265,16) を実行すると 00000001 00001001 である
00000001 は10進法で 1 00001001 は 10進法で 9
265 の行番号は 16ビットのCで表される
下位の8ビットは #C00A に 10進法で書き込まれる
上位の8ビットは #C00B に 10進法で書き込まれる
この記法は 16ビットのデータを 8ビットのメモリ2つで表すのに
下位の 8 ビットを先に書いている
この記法を 「リトル・エンデアン」 という
リトル・インデアン と思っていたら 違う 正しくは Little endian