17 lines
586 B
Plaintext
17 lines
586 B
Plaintext
LD r0, (rom_size) # - 11
|
|
LD r1, (ram_size) # - 11
|
|
AR r2,r0,r1,ADD #r2 contains first free address after ram - 4
|
|
ST r2,8(pci_base) #set BAR0 of hdd to first free address - 15
|
|
LDB r4,1 # - 4
|
|
STB r4,7(pci_base) #enable hdd BAR0 - 15
|
|
LDW r1,512 #r1 is index - 5
|
|
loop:
|
|
ARW r1,r1,r4,SUB #Subtract 1 from the index - 4 (r4 set to 1 on line 5, saves memory for the 1 constant)
|
|
LDB r3,r1(r2) #set r3 to byte from HDD - 3
|
|
STB r3,r1(r0) #store HDD byte to RAM - 4
|
|
JNZ (loop) #If index not 0, jump back - 11
|
|
JMP (rom_size) #Jump to loaded code - 11
|
|
rom_size: dqw 0
|
|
ram_size: dqw 0
|
|
pci_base: dqw 0
|