Uses math


Procedure Main
  Var i,o,size,r,v:Integer
  Var fhIn,fhOut:Integer
  Var buffer:Byte[]
  Var regs:Byte[255]
  Var s:String
  CGICloseBuffer
  If ParamStr(2), ParamStr(3)
	  fhIn:=F_Open(ParamStr(2))
    size:=F_Size(fhIn)
    CGIWriteLn('size='+Str(size))
    InitArray(buffer[size-1])
	  F_Read(fhIn,buffer)
	  F_Close(fhIn)
	  i:=0
	  While i<=High(1,buffer)
//CGIWriteLn(Str(i)+': '+base10toAny(buffer[i],16))
	    If buffer[i]=baseAnyTo10('AF',16)
	      i++
	      If buffer[i]=baseAnyTo10('20',16)
  	      i++
  	      r:=buffer[i]
  	      CGIWrite(base10toAny(r,16))
  	      CGIWrite(':=')
  	      i++
  	      v:=buffer[i]
  	      CGIWriteLn(base10toAny(v,16))
  	      regs[r]:=v
  	    Else
  	      i++
  	    End
	    Else
	      i++
	    End
	  End
	  fhOut:=Rewrite(ParamStr(3))
	  i:=0
	  While i<=baseAnyTo10('1C',16)
	    s:=base10toAny(regs[i],16)
	    Write(fhOut,FillStrLeft(s,'0',2)+' ')
	    i++
	  End
	  Close(fhOut)
	End
EndProc
