Add BootROM support.
This commit is contained in:
committed by
Ted Fried
parent
5662d3988e
commit
d2f95788e5
72
XTMax/Drivers/BootROM/bootrom.asm
Normal file
72
XTMax/Drivers/BootROM/bootrom.asm
Normal file
@@ -0,0 +1,72 @@
|
||||
bits 16
|
||||
|
||||
%ifndef AS_COM
|
||||
;
|
||||
; BIOS will look for the AA55 signature between C8000-DFFFF in 2KB increments.
|
||||
; We choose an address in that range.
|
||||
;
|
||||
org 0xce000
|
||||
dw 0AA55h
|
||||
db 4 ; times 512 bytes
|
||||
|
||||
%else
|
||||
;
|
||||
; Building as a COM file for testing.
|
||||
;
|
||||
org 0x100
|
||||
|
||||
%endif
|
||||
|
||||
entry:
|
||||
%ifndef AS_COM
|
||||
mov ax, 0xc000
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
%endif
|
||||
|
||||
mov si, welcome
|
||||
call print_string
|
||||
|
||||
|
||||
%ifndef AS_COM
|
||||
retf
|
||||
%else
|
||||
;
|
||||
; DOS exit program.
|
||||
;
|
||||
mov ah, 0x4c
|
||||
xor al, al
|
||||
int 0x21
|
||||
%endif
|
||||
|
||||
;
|
||||
; Utilities
|
||||
;
|
||||
|
||||
print_string:
|
||||
push bx
|
||||
xor bx,bx
|
||||
.loop:
|
||||
lodsb
|
||||
or al, al
|
||||
jz .done
|
||||
mov ah, 0x0E
|
||||
int 0x10
|
||||
jmp .loop
|
||||
.done:
|
||||
pop bx
|
||||
ret
|
||||
|
||||
;
|
||||
; Strings
|
||||
;
|
||||
|
||||
welcome db 'BootROM for XTMax v0.1', 0x0D, 0x0A, 0
|
||||
|
||||
%ifndef AS_COM
|
||||
;
|
||||
; Pad to 2KB. We will try to keep our ROM under that size.
|
||||
;
|
||||
times 2047-($-$$) db 0
|
||||
db 0 ; will be used to complete the checksum.
|
||||
%endif
|
||||
Reference in New Issue
Block a user