Program utrkseq;
 
{(c) Медноногов В.С. 1996}
 
var
 
 tf:text;
 
 be,en,i,j,k,l:longint;
 
 name,s1,s2,s3,s4,hex:string;
 
 
 
function hexa(i:longint):string;
 
const
 
 dig:string='0123456789ABCDEF';
 
var
 
 j,k,l:integer;
 
 hx:string;
 
begin
 
  if i=0 then begin hexa:=dig[1];exit;end;
 
  hx:='';
 
  while i>0 do
 
    begin
 
     k:=i mod 16 +1;
 
     i:=i div 16;
 
     hx:=dig[k]+hx;
 
    end;
 
  hexa:=hx;
 
end;
 
 
 
{-------------------}
 
{
 
        Формат диска 1 (720)
 
        80 дорожек по 512
 
        t0-0
 
        t1-0
 
        9,9,9,9 (по 1024)
 
        остальные
 
        F5,F6,F7,F8,F9,FA,FB,FC,FD
 
        Верхняя сторона дублирует нижнюю
 
 
 
        Данные:
 
         1024 загрузчик
 
         далее - файлы, выровненые на границу сектора
 
}
 
begin
 
writeln;
 
writeln('НЛО-2. Дьяволы бездны');
 
writeln;
 
writeln('Cоздание описателей дорожек диска 1 для  FDA');
 
for i:=0 to 79 do
 
for j:=0 to 1 do
 
begin
 
str(i,s1);
 
str(j,s2);
 
name:='d:\''ufo2''\xd1\trk'+s1+'-'+s2+'.seq';
 
assign(tf,name);
 
rewrite(tf);
 
{format}
 
writeln(tf,';Xcom track sequence for disk1 (c) 1996');
 
writeln(tf,';');
 
writeln(tf,' Double:');
 
if (i=0) then
 
  begin
 
    writeln(tf,'F 4 3 112 244');
 
    en:=3;
 
  end
 
else
 
  begin
 
    writeln(tf,'F 9 2 112 244');
 
    en:=8;
 
  end;
 
be:=$F5;
 
for k:=be to be+en do
 
   if (i=0) then writeln (tf,' 0 ',s2,' 9 3')
 
     else
 
        begin
 
        str(k,s3);
 
        writeln(tf,' ',s1,' ',s2,' ',s3,' 2');
 
        end;
 
{data}
 
hex:=hexa(512*9*(i-1)+1024)+'H';
 
if (i<>0) then
 
  writeln(tf,'W ',s1,' ',s2,' ',be,' 2 N ',hex,' 4608 255 255 27')
 
else
 
   for k:=0 to en do
 
     begin
 
      writeln(tf,'W 0 ',s2,' 9 3 N 0H 1024 255 255 27');
 
     end;
 
writeln(tf,'END');
 
close(tf);
 
end;
 
{-------------------}
 
{
 
        Формат диска 2 (800)
 
        80 дорожек
 
        t0-0
 
        9  [1024]
 
        t1-0..t1-15
 
        10,11,12,13,14,15,16,17,18 (hex)
 
        t0-1..t0-3  [256]
 
        1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 (dec)
 
        t1-16..t1-79
 
        t0-4..t0-79
 
        F4,F5,F6,F7,F8  [1024]
 
        Верхняя сторона с t1-16 дублирует t0-4
 
 
 
        Даные:
 
          1024 - загрузчик
 
          далее - файлы
 
}
 
 
 
writeln('Cоздание описателей дорожек диска 2 для  FDA');
 
for i:=0 to 79 do
 
for j:=0 to 1 do
 
begin
 
str(i,s1);
 
str(j,s2);
 
name:='d:\''ufo2''\xd2\trk'+s1+'-'+s2+'.seq';
 
assign(tf,name);
 
rewrite(tf);
 
{format2}
 
writeln(tf,';');
 
writeln(tf,';Xcom track sequence for data disk2 (c) 1996');
 
writeln(tf,';         Автор Вячеслав Медоногов');
 
writeln(tf,';');
 
writeln(tf,'   Double:');
 
if (j=1) and (i<16) then
 
  begin
 
    case i of
 
    0,9 : writeln(tf,'F 9 2 112 240');
 
    1,11: writeln(tf,'F 9 2 80 246');
 
    2,14: writeln(tf,'F 9 2 99 101');
 
    3,15: writeln(tf,'F 9 2 63 222');
 
    4,8 : writeln(tf,'F 9 2 91 060');
 
    5,13: writeln(tf,'F 9 2 105 245');
 
    6,12: writeln(tf,'F 9 2 68 250');
 
    7,10: writeln(tf,'F 9 2 114 030')
 
     else writeln('error');
 
    end;
 
    be:=$10;
 
    en:=be+8;
 
    s4:='2';
 
  end;
 
if ((j=0) and (i>=4)) or ((j=1) and (i>=16)) then
 
  begin
 
    writeln(tf,'F 5 3 111 246');
 
    be:=$F4;
 
    en:=be+4;
 
    s4:='3';
 
  end;
 
if (j=0) and (i>0) and (i<4) then
 
  begin
 
    writeln(tf,'F 16 1 50 246');
 
    be:=1;
 
    en:=be+15;
 
    s4:='1';
 
  end;
 
if (i=0) and (j=0) then
 
  begin
 
    writeln(tf,'F 2 3 112 246');
 
    be:=9;
 
    en:=be+1;
 
    s4:='3';
 
  end;
 
 
 
for k:=be to en do
 
      begin
 
        str(k,s3);
 
        writeln(tf,' ',s1,' ',s2,' ',s3,' ',s4);
 
      end;
 
{data2}
 
if (j=0) and (i=0) then
 
    writeln(tf,'W ',s1,' ',s2,' ',be,' ',s4,' N 0H 1024 255 255 27');
 
if (j=0) and (i>=4) and (i<70) then
 
  begin
 
    hex:=hexa(512*10*(i-4)+1024)+'H';
 
    writeln(tf,'W ',s1,' ',s2,' ',be,' ',s4,' N ',hex,' 5120 255 255 27');
 
  end;
 
if (j=1) and (i>=16) then
 
  begin
 
    hex:=hexa(512*10*(i-16)+1024)+'H';
 
    writeln(tf,'W ',s1,' ',s2,' ',be,' ',s4,' N ',hex,' 5120 255 255 27');
 
  end;
 
writeln(tf,'END');
 
close(tf);
 
end;
 
end.