Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FASM.
- boot.ASM:
- org 0x7C00
- start:
- cli
- xor ax,ax
- mov ds,ax
- mov es,ax
- mov ss,ax
- mov sp,0x7C00
- sti
- mov ax,2
- int 0x10
- mov dx,0
- call set_cursor_pos
- mov bp,msg
- mov cx,10
- call print_mes
- add dh,1
- call set_cursor_pos
- mov bp,con
- mov cx,14
- call print_mes
- cont:
- mov ah,0x10
- int 0x16
- cmp al,0xD
- jz kernel
- jmp cont
- kernel:
- mov ax,0
- mov es,ax
- mov bx,0x7E00 ;dl'a chego????????!!?! mozhno zhe shto ugodno postavit'
- mov ch,0
- mov cl,2
- mov dh,0
- mov dl,0x80
- mov al,2
- mov ah,2
- int 0x13
- jmp 0x7E00
- print_mes:
- mov bl,3
- mov ax,0x1301
- int 0x10
- ret
- set_cursor_pos:
- mov ah,2
- xor bh,bh
- int 0x10
- ret
- ;-------------------------------------------------
- msg db 'loading...',0
- con db 'press Enter...',0
- finish: times 0x1FE-finish+start db 0
- db 0x55,0xAA
- grf.ASM:
- org 0x7E00
- start:
- mov ax,0x13
- int 0x10
- mov ax,0xA000
- mov es,ax
- mov di,9649
- mov ax,18150
- push di
- push ax
- dec di
- mov byte[es:di],47
- sub di,320
- mov byte[es:di],47
- inc di
- mov byte[es:di],47
- mov di,ax
- inc di
- mov byte[es:di],40
- add di,320
- mov byte[es:di],40
- dec di
- mov byte[es:di],40
- pop ax
- pop di
- call ris_lin
- vs:
- jmp vs
- ;-------------------------------------------------
- ris_lin:
- mov si,320
- push ax
- div si
- mov bx,ax
- push bx
- mov bx,dx
- push dx
- pop ax
- xchg ax,di
- push ax
- div si
- mov cx,ax
- pop ax
- xchg ax,di
- mov bx,dx
- pop dx
- sub dx,bx
- mov [shirina],dx
- pop bx
- sub bx,cx
- mov [visota],bx
- xor dx,dx
- push ax
- mov ax,[shirina]
- mov bx,[visota]
- div bx
- mov cx,ax
- pop ax
- xor bx,bx
- rl_loop1:
- push cx
- rl_loop2:
- mov byte[es:di],15
- inc di
- loop rl_loop2
- add di,320
- inc bx
- pop cx
- cmp di,ax
- jg rl_end
- cmp bx,dx
- jz rl_dob
- rl_con:
- jmp rl_loop1
- rl_dob:
- xor bx,bx
- inc di
- mov byte[es:di],15
- jmp rl_con
- rl_end:
- ret
- ;-------------------------------------------------
- visota rw 1
- shirina rw 1
- sbor.ASM:
- macro align value { db value-1 - ($ + value-1) mod (value) dup 0 }
- HEADS = 1
- SPT = 2
- Begin:
- file "boot.bin",512
- file "grf.bin"
- align 512
Advertisement
Add Comment
Please, Sign In to add comment