BIF-6809 の使い方

Some words of explanation about early Forth systems, and about this one in particular.
初期時代の Forth システム、特にこの Forth システムについて一つ断る必要があります。

Most modern Forth systems give you access to the host operating system and file systems. Many early Forth systems tried to be their own OS without a structured file system, and thus did not give such access. At this point, BIF-6809 is in the latter class.
現代の Forth 体系は凡そそのホストとなるオペレーティングシステム及び付属のファイルシステムへの出入りをさせてくださるのです。初期時代の Forth 体系の多少は、無構造ファイルシステムの、自分のOSという振る舞いでしたので、その出入りの道がなかったのです。現時点の BIF-6809 は後者の仲間です

Very primitive.
とても質素な存在です。

You have to track what you put where.
何をどこに置いたかは自分で覚えて置く必要があります。

One way to do that was to write a list of things in the first several kilobytes of the disk.
一つの方法としては、リストをディスクの最初の数キロバイトに書き込むことです。

Here is the list from the first two sectors of the tools floppy image:
その tools フロッピーイメージの最初2セクターからのリストは以下の通りです。

0) Index to BIF HI-LEVEL disk
2) Title page, Copr. notice
3) MONITOR CALL TO DEBUG
4) ERROR MESSAGES
6) HIGH LEVEL TOOLS & UTILITIES
7) LIST, INDEX, TRIAD
8) HIGH LEVEL DISK & SCREEN

11) FORWARD REFERENCING
12) PERIPHERAL UTILITIES
13) SLIST

15) DUMP DEFINITION BY NAME
16) ASSEMBLER

 32) DOUBLES IN ASSEMBLER

 40) HLL COMPILER

64) PAIR ASSOCIATION EXAMPLE

66) A TRY AT DIVIDE BY CONSTANT 

100) SARDIS DMC STUFF 

144) HOOCH COMPILER REMAINS

Some of those no longer exist.
その一部は今ありません。

You can look at the list if you want.
見ては如何ですか?

If you are running XRoar, get it started with the Disk Extended Color BASIC roms and the disk controller, etc. If using XRoar 0.35.3 which has been compiled in a directory two up and one over, and roms in a directory two up and one over a different way, it looks like this:
XRoar をお使いの場合はディスク拡張カラーベーシックのそれぞれのロムやディスクコントローラなどを指定して稼働します。XRoar 0.35.3 を2層上位の一歩横の下にコンパイルされ、またロムのそれぞれが2層上位のまた別の一歩横の下に置かれているなら、こういう感じです。

../../xroar-0.35.3/src/xroar -machine coco2bus -bas ../../roms/Color\ Basic\ v1.3\ \(1982\)\(Tandy\).rom -extbas ../../roms/Extended\ Colour\ Basic\ v1.0\ \(1981\)\(Tandy\)/coco.rom -cart rsdos -cart-rom ../../roms/Color\ Computer\ Controller\ \(1982\)\ \(26-3022\).rom -keymap us -kbd-translate &
As I explained in the install/getting started notes (https://osdn.net/projects/bif-6809/howto/install), with the tools floppy in drive 0 and bifsource in drive 1, type
インストール及び最初の一歩の説明(https://osdn.net/projects/bif-6809/howto/install)に説明しましたが、 tools のフロッピをドライブ 0 に、 bifsource をドライブ 1 に挿入して、




But you probably want to hold off enabling write-back, yet.
ただ、 Write-back を有効にするのはまだまだもうちょっとかも知れません。

LOADM "BIF6809.BIN:1"

in Color Computer Disk BASIC. It wll come back with the colorfully flashing cursor after ten or twenty seconds. Tell it where to start:
をカラーコンピュータディスクベーシックに送ります。数十秒ど、カラフルなカーソルが点滅する状態に戻ります。どこから行けばいいかを教える命令を送ります。

EXEC &H1300

That's BASIC's way of saying hexadecimal 1300, which is 4,864 in the more usual decimal.
それは、ベーシックのやり方で16進法の 1300 をいう事です。つまり、通常の十進法では、 4,864 でえす。

After about ten seconds or so, it comes back and says
凡そ十秒後、戻ってきて以下の通り見せてくれるのです。
6809 BIF V. 1.0



with a non-flashing white cursor.
これは点滅しない白いカーソルを見せます。

We'll need some tools that didn't fit in when using EDTASM+, so let's load them from the tools disk. That's them starting at screen 6.
EDTASM+ に定義するのが少しキツイ道具が欲しいはずです。 tools のディスクから導入しましょう。スクリーン 6 に載っているのはその道具です。

6 LOAD


Now we can look at the first sector:
最初のセクターをこれで覗けます。

0 QLIST



The funny characters in the titles for screens 0 and 2 are lower case as displayed by versions of Color Computer that didn't do lower case.
スクリーン 0 と 2 に見える文字化けは小文字ができなかったカラーコンピュータが表示する小文字です。

Yes. This is the raw disk. No file system. Be careful not to leave DISK BASIC or OS-9/6809 floppies in the drives.
はい、ナマのままのディスクです。ファイルシステム無しの状態です。DISK BASIC もしくは OS-9/6809 のフロッピをドライブに残さないように気をつけましょう。

Let's look at the second sector. Notice that the cursor is brought back.
二番目のセクターを見ましょう。カーソルが戻されることに注意して下さい。

1 QLiST


The traditional way of organizing disks and files in Forth is in one kilobyte screens. Source code is usually edited one screen at a time.
Forth の伝統的なファイル構造は1キロバイト毎のスクリーンです。ソースコードの手入れは普通、一度に 1スクリーンを編集します。

If your sectors are 128 bytes, that's going to be 8 sectors in a screen.
セクター量が 128バイトなら、スクリーンが 8セクターです。

But the Color Computer does 256 byte sectors, so there are 4 sectors per screen.
しかし、カラーコンピュータにはセクター量が 256 バイトなので、1スクリーンが 4セクターです。

The Color Computer's physical display only shows 512 characters.
カラーコンピュータの物理的画面表示が 512文字だけです。

So I built an editing system that displays and edits a sector at a time.
したがって、一同に 1セクターを表示・編集できるシステムを組み立てたのです。

So we need a table that explains how bytes, sectors, and screens relate. Everything starts from zero in this table:
バイト、セクターとスクリーンの関係を説明する図表が欲しいですね。この表にそれぞれがゼロから行きます。

            decimal  hex       hex      == decimal
SCREEN    Sector             byte offset
0000        0     $0000    $0000    == 0
0000.       1     $0001    $0100    == 256
0000..      2     $0002    $0200    == 512
0000...     3     $0003    $0300    == 768
0001        4     $0004    $0400    == 1024
0001.       5     $0005    $0500    == 1280
0001..      6     $0006    $0600    == 1536
0001...     7     $0007    $0700    == 1792
0002        8     $0008    $0800    == 2048
0002.       9     $0009    $0900    == 2304
0002..     10    $000A    $0A00    == 2560
0002...    11    $000B    $0B00    == 2816
0003       12    $000C    $0C00    == 3072
0003.      13    $000D    $0D00    == 3328
0003..     14    $000E    $0E00    == 3584
0003...    15    $000F    $0F00    == 3840

So screen 1 starts at sector 4. Multiply the screen number by 4 to get the sector number for th first sector of the screen.
つまり、スクリーン 1 はセクター 4 から始まります。スクリーン番号の 4倍がセクター番号です。

If you want to see the source for those so-called high-level tools and utilities you loaded from screen 6, you can do this:
スクリーン 6 で導入したいわゆる高レベル道具やユーティリティのソースコードを見ようと思えば

6 4 * QLIST


Or, well,

さて、さて、

6 4 *  1 + .


19   OK

What?

なんですって??


Oh. Loading screen 6 left us in hexadecimal. I shouldn't have done that, because it confuses us.

あっ! スクリーン 6 をロードしたのは16進法のままに終わったのです。アカンわ!

DECIMAL 6 4 * 1 +  .

25  OK


Much better.

宜し。


Now you can go looking around, load the (postfix) assembler, etc.

これであちこち探ったり、(接尾語の)アセンブラをロードしたりなどができると思います。


[JMR20190501

There is now a host system tool, bif-img that can show and store the contents of SCREENs.

スクリーンの中身を見せたり掲載させたりできる bif-img という道具ができました。

It can be used as follows.

以下のように利用できます。


Compile it in the root directory of the bif source:

Bif のソースのルートディレクトリにコンパイルします。


cc -Wall -o bif-img bif-img.c


Then change directory into testsource to practice:

練習するために testsource のディレクトリに移動します。


cd testsource


To show the contents of SCREEN 0, type the following on the command line:

スクリーン 0 の中身を見せるには以下の文ををコマンドラインに打ち込みます。


cp tools.dsk toolswork.dsk

../bif-img --to-eoln-text toolswork.dsk -- -off=0 -count=1


(Don't work directly on important images. Take a copy first so you don't destroy valuable stuff.)

(大事なイメージに直接二手を付けては危険性がありますので、先ずコピーを取りましょう。)


To save it, redirect it to a file, say, index.txt:

index.txt というファイルにリダイレクトして書き込み出来ます。


../bif-img --to-eoln-text toolswork.dsk -- -off=0 -count=1 > index.txt


Affter you edit the contents of screen 0, put it back:

スクリーン 0 の中身を編集してから戻せます。


../bif-img --to-screens index.txt toolswork.dsk -off=0


Make sure you have exactly 32 lines per screen, no more than 32 columns wide, or you will overwrite the next screen and push things off their boundaries. There are no undoes, so be very careful. Check the results with listing it again:

一つのスクリーンにあたり、ちょど 32行、最長 32桁にしないと次のスクリーンを上書きしてしまい、中身をずらしてしまいます。アンドゥーなんかありません。緊張に緊張、作業して下さい。結果を以下のように再び表示して確認して下さい。


../bif-img --to-eoln-text toolswork.dsk -- -off=0 -count=1


To work on screens 40 through 43 of the image sieveplay.dsk, specifiy -off=40 and -count=4:

スクリーン 40 から 43 までの作業なら、 -off=40 及び -count=4 のようにして下さい。


../bif-img --to-eoln-text sieveplay.dsk -- -off=40 -count=4 > sieve.fs

[...]

../bif-img --to-screens sieve.fs sieveplay.dsk -off=40

../bif-img --to-eoln-text sieveplay.dsk -- -off=40 -count=4


]


This is all I have time for now. Hopefully, this is enough to make BIFDOC.TXT intelligible.

今日はこれしか出来ません。 BIFDOC.TXT がこれで解読できると嬉しいけど、… (汗)