#99 Article 930 Posted at 1995/10/16 03:40:31 by MEX (MAP5294) [A.ML1]
Subject: Re: ML1で質問です。 /929
私はpasは良く知りませんが(笑) < 通が多そうなので(^^;
ML1ことは多少解りますので説明します。
で、連鎖の展開がおかしいのではないでしょうか。で、改善例ですが
### メイン
rensaread(xy+160,fgc); --> rensarand(xy,fgc);
### rensarand
> if (dx <> -127) then
> pixel[xy + dx] := color;
> inc(xy,160+dx);
|
v
if (dx <> -127) then begin
inc(xy,160+dx);
pixel[xy] := color;
end;
すると動きました。(あくまで仮設ですが)
ちなみに下記の10色対応ディスプレイドライバ(笑)で表示しただけです(^^;
(お、知らん間にDOS汎用のML1ローダーできちゃった☆(恥))
xy := 0;
for i:=0 to 99 do begin
for j:=0 to 159 do begin
write(pixel[xy]);
inc(xy);
end;
writeln('');
end;
結果的には、rensareadの中では画面下をつっきてしまい、と連鎖終了を取ら
ないでexitしていました。連鎖がうまく取れないと110を次の長さに取得して
しまうので長さがおかしくなる以外にも、それに伴いEOD(長さ16000(+1))を取
れなくなり、帰ってこなくなる場合もあるようでした。
構造的にはEODを期待しないものでも良いのでしょうが、長さ取得(l := wyle
read+1;)の所でおりを見るのも一考かと思います。
以上、嘘言ってるかもしれません。:->
MAP5294 MEX
--------------
見た感じ1passで処理しているようでかわってて面白いです。
私も初め1passでdecodeさせて見ようと思っていたのですが
debugで死んだのであっさり一般的な2passの処理を書いた次第です。
ML1は幾分トリッキーな所がある(--;