a assembly program for everyone
parent
5e506981df
commit
03b2e723b0
Binary file not shown.
@ -0,0 +1,60 @@
|
||||
[org 0x3000]
|
||||
|
||||
start:
|
||||
mov [bootdev], dl
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 4Fh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov al, 182 ; meaning that we're about to load
|
||||
out 43h, al ; prepare speaker for output
|
||||
|
||||
mov ax, 2153 ; frequency countdown value is stored in ax. It is calculated by
|
||||
out 42h, al ; Output low byte.
|
||||
mov al, ah ; Output high byte.
|
||||
out 42h, al
|
||||
|
||||
in al, 61h
|
||||
or al, 00000011b
|
||||
out 61h, al ; Send the new value
|
||||
; mov bx, 200 ; Pause for duration of note.
|
||||
|
||||
mov al, 0
|
||||
mov ah, 86h
|
||||
mov cx, 1
|
||||
mov dx, 200
|
||||
int 15h
|
||||
|
||||
;.pause1:
|
||||
; mov cx, 65535
|
||||
;.pause2:
|
||||
; dec cx
|
||||
; jne .pause2
|
||||
; dec bx
|
||||
; jne .pause1
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
|
||||
|
||||
waitforkey:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp ah, 01h
|
||||
je exit
|
||||
jmp waitforkey
|
||||
|
||||
exit:
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
mov dl, [bootdev]
|
||||
jmp 0x0:0x1000
|
||||
|
||||
bootdev db 0x80 ; Boot device number
|
||||
|
@ -0,0 +1,60 @@
|
||||
[org 0x7000]
|
||||
|
||||
start:
|
||||
mov [bootdev], dl
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 4Fh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov al, 182 ; meaning that we're about to load
|
||||
out 43h, al ; prepare speaker for output
|
||||
|
||||
mov ax, 2153 ; frequency countdown value is stored in ax. It is calculated by
|
||||
out 42h, al ; Output low byte.
|
||||
mov al, ah ; Output high byte.
|
||||
out 42h, al
|
||||
|
||||
in al, 61h
|
||||
or al, 00000011b
|
||||
out 61h, al ; Send the new value
|
||||
; mov bx, 200 ; Pause for duration of note.
|
||||
|
||||
mov al, 0
|
||||
mov ah, 86h
|
||||
mov cx, 1
|
||||
mov dx, 200
|
||||
int 15h
|
||||
|
||||
;.pause1:
|
||||
; mov cx, 65535
|
||||
;.pause2:
|
||||
; dec cx
|
||||
; jne .pause2
|
||||
; dec bx
|
||||
; jne .pause1
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
|
||||
|
||||
waitforkey:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp ah, 01h
|
||||
je exit
|
||||
jmp waitforkey
|
||||
|
||||
exit:
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
mov dl, [bootdev]
|
||||
jmp 0x0:0x1000
|
||||
|
||||
bootdev db 0x80 ; Boot device number
|
||||
|
Binary file not shown.
@ -0,0 +1,60 @@
|
||||
[org 0x6000]
|
||||
|
||||
start:
|
||||
mov [bootdev], dl
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 4Fh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov al, 182 ; meaning that we're about to load
|
||||
out 43h, al ; prepare speaker for output
|
||||
|
||||
mov ax, 2153 ; frequency countdown value is stored in ax. It is calculated by
|
||||
out 42h, al ; Output low byte.
|
||||
mov al, ah ; Output high byte.
|
||||
out 42h, al
|
||||
|
||||
in al, 61h
|
||||
or al, 00000011b
|
||||
out 61h, al ; Send the new value
|
||||
; mov bx, 200 ; Pause for duration of note.
|
||||
|
||||
mov al, 0
|
||||
mov ah, 86h
|
||||
mov cx, 1
|
||||
mov dx, 200
|
||||
int 15h
|
||||
|
||||
;.pause1:
|
||||
; mov cx, 65535
|
||||
;.pause2:
|
||||
; dec cx
|
||||
; jne .pause2
|
||||
; dec bx
|
||||
; jne .pause1
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
|
||||
|
||||
waitforkey:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp ah, 01h
|
||||
je exit
|
||||
jmp waitforkey
|
||||
|
||||
exit:
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
mov dl, [bootdev]
|
||||
jmp 0x0:0x1000
|
||||
|
||||
bootdev db 0x80 ; Boot device number
|
||||
|
Binary file not shown.
@ -0,0 +1,78 @@
|
||||
[org 0x2000]
|
||||
|
||||
start:
|
||||
mov [bootdev], dl
|
||||
mov al, 182 ; meaning that we're about to load
|
||||
out 43h, al ; prepare speaker for output
|
||||
|
||||
mov ax, 2153 ; frequency countdown value is stored in ax. It is calculated by
|
||||
out 42h, al ; Output low byte.
|
||||
mov al, ah ; Output high byte.
|
||||
out 42h, al
|
||||
|
||||
in al, 61h
|
||||
or al, 00000011b
|
||||
out 61h, al ; Send the new value
|
||||
|
||||
mov al, 0
|
||||
mov ah, 86h
|
||||
mov cx, 1
|
||||
mov dx, 200
|
||||
int 15h
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
|
||||
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 9Bh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov ah, 02h ;sets cursor to top to write
|
||||
mov bh, 0h
|
||||
mov dh, 2h
|
||||
mov dl, 2h
|
||||
int 10h
|
||||
mov si, description
|
||||
call print
|
||||
jmp waitforkey
|
||||
|
||||
print:
|
||||
lodsb
|
||||
or al,al
|
||||
jz .exit
|
||||
mov ah,0x0e
|
||||
int 10h
|
||||
jmp print
|
||||
.exit:
|
||||
ret
|
||||
|
||||
waitforkey:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp ah, 01h
|
||||
je exit
|
||||
jmp waitforkey
|
||||
|
||||
exit:
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
mov dl, [bootdev]
|
||||
jmp 0x0:0x1000
|
||||
|
||||
description db "Poetic Software is a project .... . . . .",0
|
||||
|
||||
bootdev db 0x80 ; Boot device number
|
||||
|
||||
%assign usedMemory ($-$$)
|
||||
%assign usableMemory (512*16)
|
||||
%warning [usedMemory/usableMemory] Bytes used
|
||||
times (512*16)-($-$$) db 0 ;kernel must have size multiple of 512 so le$
|
||||
|
||||
|
Binary file not shown.
@ -0,0 +1,60 @@
|
||||
[org 0x5000]
|
||||
|
||||
start:
|
||||
mov [bootdev], dl
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 4Fh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov al, 182 ; meaning that we're about to load
|
||||
out 43h, al ; prepare speaker for output
|
||||
|
||||
mov ax, 2153 ; frequency countdown value is stored in ax. It is calculated by
|
||||
out 42h, al ; Output low byte.
|
||||
mov al, ah ; Output high byte.
|
||||
out 42h, al
|
||||
|
||||
in al, 61h
|
||||
or al, 00000011b
|
||||
out 61h, al ; Send the new value
|
||||
; mov bx, 200 ; Pause for duration of note.
|
||||
|
||||
mov al, 0
|
||||
mov ah, 86h
|
||||
mov cx, 1
|
||||
mov dx, 200
|
||||
int 15h
|
||||
|
||||
;.pause1:
|
||||
; mov cx, 65535
|
||||
;.pause2:
|
||||
; dec cx
|
||||
; jne .pause2
|
||||
; dec bx
|
||||
; jne .pause1
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
|
||||
|
||||
waitforkey:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp ah, 01h
|
||||
je exit
|
||||
jmp waitforkey
|
||||
|
||||
exit:
|
||||
in al, 61h ; Turn off note (get value from
|
||||
; port 61h).
|
||||
and al, 11111100b ; Reset bits 1 and 0.
|
||||
out 61h, al ; Send new value.
|
||||
mov dl, [bootdev]
|
||||
jmp 0x0:0x1000
|
||||
|
||||
bootdev db 0x80 ; Boot device number
|
||||
|
Loading…
Reference in New Issue