%include "dkmain.imp-nolist"
%include "writedk.imp-nolist"

{%begin
  %integer address
  %integer i, j, num, totalSize, size
  %string(255) infilename

  %routine towrite
    phex4(num); space
    WriteDisk(num)
  %end

{main}
  init

  prompt("in file: ")
  read(infilename)
  print string(infilename)
   totalSize = filesize( infilename );
  space; write(totalSize,0)
  newline

    prompt(" start block ($): ");
    rhex( num );

  open input( 1, infilename )
  select input( 1 )

{  connect file( infilename, 0, address, totalSize)
{  printstring("address=");phex(address);newline
{  address = address - 1

 %cycle

  %if totalSize <= 512 %start
    size = totalSize
    read  symbol( buffer(i) ) %for i= 1, 1, size
{    buffer(i) = byteinteger( address + i ) %for i= 1, 1, size
    buffer(i) = 0 %for i= size+1, 1, 512
    towrite
    newline
    printstring(" last block size= ");
    write(size,6)
    %exit
  %else
    size = 512
    totalSize = totalSize - 512
    read  symbol( buffer(i) ) %for i= 1, 1, 512
{    buffer(i) = byteinteger( address + i ) %for i= 1, 1, 512
    towrite
    num = num + 1
{    address = address + 512
  %finish

 %repeat

  bye
%endofprogram
