It looks like some bytes have gone missing, the size should be 512Kb.
This is a stupid question, but just to rule it out. You typed P and then <enter> before sending the file right? :)
The whole thing is extremely simplistic and there are no fancy protocols involved, it's a direct USB connection after all.
After it has gotten the initial block of data it goes like this in an infinite loop:
<program block of data>
<get new block of data>
if at any point <get new block of data> times out it assumes the host had nothing more to send and that the transfer must be complete.
I wonder if that was what happened and perhaps the end-of-transfer timeout should be made longer. It looks like I have it at 2 seconds.
Or maybe other terminal programs assume some kind of echo? I have only tested with CoolTerm but I could give some other ones a go too.
Update: I checked also with the program simply called "Serial" and it worked fine here too. It asked about file transfer protocol when sending the file and I picked "RAW", not XModem, YModem or any of the other WhateverModems :)
This is the output here, and then how it looks at location $0 (start of Raven bios) and $40000 (start of TOS)
