2020-06-21 14:14:57 -05:00

23 lines
697 B
C

// long* rom_size=(long*)0x1000;
// long* ram_size=(long*)0x1000000;
// long* pci_base=(long*)0xFFFFFFFFFF000000;
int main() {
extern long* rom_size;
extern long* ram_size;
extern long* pci_base;
long rom_sz_val=*rom_size;
long ram_sz_val=*ram_size;
long* hdd_start=(long*)(rom_sz_val+ram_sz_val);
long len_mask=pci_base[0x12];
hdd_start=(long*)((long)hdd_start|~len_mask)+1;
pci_base[0x12]=(long)hdd_start; //set BAR0 of hdd to first free address
pci_base[0x11]=1; //enable hdd BAR0
for (short idx=512;idx>0;) {
idx=idx-1;
char byte_tmp=hdd_start[idx]; //set r3 to byte from HDD
((char*)rom_sz_val)[idx]=byte_tmp; //store HDD byte to RAM
}
*rom_sz_val();
}