2017-10-15 127 views
-1

我需要從我的引導裝載程序裝載裏面的一些基本(.BAS)文件。如何加載.BAS文件從大會操作系統

我的引導裝載程序是非常基本的,和所有它應該做的是顯示一些文本和.BAS文件加載到內存並執行它。

(我很新的組件和不完全瞭解它,所以你可能要解釋一些事情。)

這裏是我的簡單的代碼到目前爲止(它是所有顯示的文本。):

BITS 16 

start: 
    mov ax, 07C0h  
    add ax, 288  
    mov ss, ax 
    mov sp, 4096 

    mov ax, 07C0h  
    mov ds, ax 


    mov si, text_string 
    call print_string 

    jmp $   


    text_string db 'MyOS BootLoader...', 10, 13 
       db 'Looking For Kernel..., 10, 13 




    ; *** INSERT .BAS LOADING CODE HERE :D *** 

print_string:   
    mov ah, 0Eh  

.repeat: 
    lodsb   
    cmp al, 0 
    je .done   
    int 10h   
    jmp .repeat 

.done: 
    ret 


    times 510-($-$$) db 0 
    dw 0xAA55  

(我的代碼是基於中MikeOS由邁克·桑德斯(發現here))

我將不勝感激,如果有人可以幫助我。 :)

+3

這個問題太寬泛。你需要從文件系統中讀取它嗎?哪種文件系統或將要放置在沒有文件系統的特定扇區上的BAS文件。可能你不會在引導扇區中安裝所有這些代碼。 –

回答

0

我的啓動加載程序是非常基本的,它應該做的就是顯示一些文本並將.bas文件加載到內存中並執行它。

這比你想象的更困難。運行一個BASIC程序需要一個解釋器。除非你是一個真正的IBM PC在ROM BASIC(這是自上世紀80年代一直沒有東西)上,你需要在你的引導扇區的解釋。 (這是不適合的。)

考慮加載一個不同類型的可執行文件 - 就像一個COM文件。

+0

有趣。 MikeOS莫名其妙地做了它那麼...... – Gigatero

+0

雖然,我找到了一堆時,我使用的不是」 .BAS' – Gigatero

+3

@Gigatero MikeOS包含BASIC解釋器「.com」之間的幫助。它佔據了大約4200行代碼 - 略低於整個MikeOS代碼庫的一半。 – duskwuff