Get rid of pre-tables for interrupts and kprintf
This commit is contained in:
parent
49ae13c73a
commit
0622188353
3 changed files with 43 additions and 308 deletions
|
@ -5,13 +5,6 @@ optrom_length:
|
|||
db 0x00
|
||||
jmp optrom_init
|
||||
|
||||
str_vendor:
|
||||
db "Nero", 0
|
||||
|
||||
align 16
|
||||
str_product:
|
||||
db "Nero DOS", 0
|
||||
|
||||
times (0x1A - ($-$$)) db 0
|
||||
dw pnp
|
||||
|
||||
|
@ -36,13 +29,13 @@ pnp:
|
|||
|
||||
align 16
|
||||
optrom_init:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
mov di, 0x0060 ; vector (0x18 * 4 bytes)
|
||||
mov ax, start
|
||||
stosw
|
||||
mov ax, cs
|
||||
stosw
|
||||
; setup data stack below code stack
|
||||
mov bp, sp
|
||||
sub bp, 0x80
|
||||
; intnum and offset to data stack
|
||||
mov word [ss:bp], 0x18
|
||||
mov word [ss:bp+2], start
|
||||
call intr_register
|
||||
retf
|
||||
|
||||
putc:
|
||||
|
@ -57,6 +50,8 @@ putc:
|
|||
|
||||
announce:
|
||||
push cs
|
||||
mov ax, cs
|
||||
mov ds, ax
|
||||
mov ax, str_product
|
||||
push ax
|
||||
call printf
|
||||
|
@ -65,42 +60,26 @@ announce:
|
|||
ret
|
||||
|
||||
start:
|
||||
mov ax, cs
|
||||
xor ax, ax
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
; setup code + data stack
|
||||
mov ss, ax
|
||||
mov sp, ax
|
||||
mov bp, sp
|
||||
; data stack starts 512 bytes below code stack
|
||||
sub bp, 0x200
|
||||
|
||||
call announce
|
||||
|
||||
; clear memory until 0x01000
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
mov di, 0x500
|
||||
mov cx, 0xB00
|
||||
rep stosb
|
||||
sub bp, 4
|
||||
mov word [ss:bp], 3
|
||||
mov word [ss:bp+2], isr_debug
|
||||
call intr_register
|
||||
|
||||
call intr_init
|
||||
sti
|
||||
|
||||
sub sp, 0x10
|
||||
mov si, sp
|
||||
mov word [ss:si+0x00], 0
|
||||
mov word [ss:si+0x02], 1
|
||||
mov word [ss:si+0x04], 0
|
||||
mov word [ss:si+0x06], 0x2000
|
||||
mov word [ss:si+0x08], 0x07fc
|
||||
mov word [ss:si+0x0A], 0
|
||||
mov word [ss:si+0x0C], 0
|
||||
mov word [ss:si+0x0E], 0
|
||||
mov ah, 0x42
|
||||
|
||||
push ss
|
||||
pop ds
|
||||
call ramdisk_io
|
||||
push ax
|
||||
call printf
|
||||
db "AX=%X", 0x0A, 0x0D, 0x00
|
||||
pop ax
|
||||
|
||||
add sp, 0x10
|
||||
int 3
|
||||
|
||||
.halt:
|
||||
hlt
|
||||
|
@ -111,9 +90,5 @@ start:
|
|||
|
||||
%include "intr.asm"
|
||||
%include "debug.asm"
|
||||
%include "kprintf.asm"
|
||||
%include "dosapi.asm"
|
||||
|
||||
_reloc_end:
|
||||
|
||||
align 512
|
Loading…
Add table
Add a link
Reference in a new issue