| 38 |
* current [and only] version of executable is 0 |
* current [and only] version of executable is 0 |
| 39 |
*/ |
*/ |
| 40 |
|
|
| 41 |
|
void loader::insert_os( void ) |
| 42 |
|
{ |
| 43 |
|
/* 0: |
| 44 |
|
* call start |
| 45 |
|
* save |
| 46 |
|
* |
| 47 |
|
* restore |
| 48 |
|
* halt [0] |
| 49 |
|
* |
| 50 |
|
* start: |
| 51 |
|
* |
| 52 |
|
*/ |
| 53 |
|
|
| 54 |
|
instr.push_back( 0x40000004 ); |
| 55 |
|
instr.push_back( 0x81E00000 ); |
| 56 |
|
instr.push_back( 0x81E80000 ); |
| 57 |
|
instr.push_back( 0x00000000 ); |
| 58 |
|
} |
| 59 |
|
|
| 60 |
unsigned long loader::to_little_endian( unsigned char *a ) |
unsigned long loader::to_little_endian( unsigned char *a ) |
| 61 |
{ |
{ |
| 62 |
unsigned long val; |
unsigned long val; |
| 131 |
file.read(word, 4); |
file.read(word, 4); |
| 132 |
unsigned long ilen = to_little_endian( word ); |
unsigned long ilen = to_little_endian( word ); |
| 133 |
instr.clear(); |
instr.clear(); |
| 134 |
|
insert_os(); |
| 135 |
|
|
| 136 |
for( unsigned int i = 0 ; i < ilen ; i+= 4 ){ |
for( unsigned int i = 0 ; i < ilen ; i+= 4 ){ |
| 137 |
unsigned long val; |
unsigned long val; |